1 /*
2  * This file is part of gtkD.
3  *
4  * gtkD is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License
6  * as published by the Free Software Foundation; either version 3
7  * of the License, or (at your option) any later version, with
8  * some exceptions, please read the COPYING file.
9  *
10  * gtkD is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with gtkD; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18  */
19 
20 // generated automatically - do not change
21 // find conversion definition on APILookup.txt
22 // implement new conversion functionalities on the wrap.utils pakage
23 
24 
25 module gio.c.types;
26 
27 public import glib.c.types;
28 public import gobject.c.types;
29 
30 
31 /**
32  * Flags used when creating a #GAppInfo.
33  */
34 public enum GAppInfoCreateFlags
35 {
36 	/**
37 	 * No flags.
38 	 */
39 	NONE = 0,
40 	/**
41 	 * Application opens in a terminal window.
42 	 */
43 	NEEDS_TERMINAL = 1,
44 	/**
45 	 * Application supports URI arguments.
46 	 */
47 	SUPPORTS_URIS = 2,
48 	/**
49 	 * Application supports startup notification. Since 2.26
50 	 */
51 	SUPPORTS_STARTUP_NOTIFICATION = 4,
52 }
53 alias GAppInfoCreateFlags AppInfoCreateFlags;
54 
55 /**
56  * Flags used to define the behaviour of a #GApplication.
57  *
58  * Since: 2.28
59  */
60 public enum GApplicationFlags
61 {
62 	/**
63 	 * Default
64 	 */
65 	FLAGS_NONE = 0,
66 	/**
67 	 * Run as a service. In this mode, registration
68 	 * fails if the service is already running, and the application
69 	 * will initially wait up to 10 seconds for an initial activation
70 	 * message to arrive.
71 	 */
72 	IS_SERVICE = 1,
73 	/**
74 	 * Don't try to become the primary instance.
75 	 */
76 	IS_LAUNCHER = 2,
77 	/**
78 	 * This application handles opening files (in
79 	 * the primary instance). Note that this flag only affects the default
80 	 * implementation of local_command_line(), and has no effect if
81 	 * %G_APPLICATION_HANDLES_COMMAND_LINE is given.
82 	 * See g_application_run() for details.
83 	 */
84 	HANDLES_OPEN = 4,
85 	/**
86 	 * This application handles command line
87 	 * arguments (in the primary instance). Note that this flag only affect
88 	 * the default implementation of local_command_line().
89 	 * See g_application_run() for details.
90 	 */
91 	HANDLES_COMMAND_LINE = 8,
92 	/**
93 	 * Send the environment of the
94 	 * launching process to the primary instance. Set this flag if your
95 	 * application is expected to behave differently depending on certain
96 	 * environment variables. For instance, an editor might be expected
97 	 * to use the `GIT_COMMITTER_NAME` environment variable
98 	 * when editing a git commit message. The environment is available
99 	 * to the #GApplication::command-line signal handler, via
100 	 * g_application_command_line_getenv().
101 	 */
102 	SEND_ENVIRONMENT = 16,
103 	/**
104 	 * Make no attempts to do any of the typical
105 	 * single-instance application negotiation, even if the application
106 	 * ID is given.  The application neither attempts to become the
107 	 * owner of the application ID nor does it check if an existing
108 	 * owner already exists.  Everything occurs in the local process.
109 	 * Since: 2.30.
110 	 */
111 	NON_UNIQUE = 32,
112 	/**
113 	 * Allow users to override the
114 	 * application ID from the command line with `--gapplication-app-id`.
115 	 * Since: 2.48
116 	 */
117 	CAN_OVERRIDE_APP_ID = 64,
118 	/**
119 	 * Allow another instance to take over
120 	 * the bus name. Since: 2.60
121 	 */
122 	ALLOW_REPLACEMENT = 128,
123 	/**
124 	 * Take over from another instance. This flag is
125 	 * usually set by passing `--gapplication-replace` on the commandline.
126 	 * Since: 2.60
127 	 */
128 	REPLACE = 256,
129 }
130 alias GApplicationFlags ApplicationFlags;
131 
132 /**
133  * #GAskPasswordFlags are used to request specific information from the
134  * user, or to notify the user of their choices in an authentication
135  * situation.
136  */
137 public enum GAskPasswordFlags
138 {
139 	/**
140 	 * operation requires a password.
141 	 */
142 	NEED_PASSWORD = 1,
143 	/**
144 	 * operation requires a username.
145 	 */
146 	NEED_USERNAME = 2,
147 	/**
148 	 * operation requires a domain.
149 	 */
150 	NEED_DOMAIN = 4,
151 	/**
152 	 * operation supports saving settings.
153 	 */
154 	SAVING_SUPPORTED = 8,
155 	/**
156 	 * operation supports anonymous users.
157 	 */
158 	ANONYMOUS_SUPPORTED = 16,
159 	/**
160 	 * operation takes TCRYPT parameters (Since: 2.58)
161 	 */
162 	TCRYPT = 32,
163 }
164 alias GAskPasswordFlags AskPasswordFlags;
165 
166 /**
167  * Flags used in g_bus_own_name().
168  *
169  * Since: 2.26
170  */
171 public enum GBusNameOwnerFlags
172 {
173 	/**
174 	 * No flags set.
175 	 */
176 	NONE = 0,
177 	/**
178 	 * Allow another message bus connection to claim the name.
179 	 */
180 	ALLOW_REPLACEMENT = 1,
181 	/**
182 	 * If another message bus connection owns the name and have
183 	 * specified %G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT, then take the name from the other connection.
184 	 */
185 	REPLACE = 2,
186 	/**
187 	 * If another message bus connection owns the name, immediately
188 	 * return an error from g_bus_own_name() rather than entering the waiting queue for that name. (Since 2.54)
189 	 */
190 	DO_NOT_QUEUE = 4,
191 }
192 alias GBusNameOwnerFlags BusNameOwnerFlags;
193 
194 /**
195  * Flags used in g_bus_watch_name().
196  *
197  * Since: 2.26
198  */
199 public enum GBusNameWatcherFlags
200 {
201 	/**
202 	 * No flags set.
203 	 */
204 	NONE = 0,
205 	/**
206 	 * If no-one owns the name when
207 	 * beginning to watch the name, ask the bus to launch an owner for the
208 	 * name.
209 	 */
210 	AUTO_START = 1,
211 }
212 alias GBusNameWatcherFlags BusNameWatcherFlags;
213 
214 /**
215  * An enumeration for well-known message buses.
216  *
217  * Since: 2.26
218  */
219 public enum GBusType
220 {
221 	/**
222 	 * An alias for the message bus that activated the process, if any.
223 	 */
224 	STARTER = -1,
225 	/**
226 	 * Not a message bus.
227 	 */
228 	NONE = 0,
229 	/**
230 	 * The system-wide message bus.
231 	 */
232 	SYSTEM = 1,
233 	/**
234 	 * The login session message bus.
235 	 */
236 	SESSION = 2,
237 }
238 alias GBusType BusType;
239 
240 /**
241  * Flags used when calling a g_converter_convert().
242  *
243  * Since: 2.24
244  */
245 public enum GConverterFlags
246 {
247 	/**
248 	 * No flags.
249 	 */
250 	NONE = 0,
251 	/**
252 	 * At end of input data
253 	 */
254 	INPUT_AT_END = 1,
255 	/**
256 	 * Flush data
257 	 */
258 	FLUSH = 2,
259 }
260 alias GConverterFlags ConverterFlags;
261 
262 /**
263  * Results returned from g_converter_convert().
264  *
265  * Since: 2.24
266  */
267 public enum GConverterResult
268 {
269 	/**
270 	 * There was an error during conversion.
271 	 */
272 	ERROR = 0,
273 	/**
274 	 * Some data was consumed or produced
275 	 */
276 	CONVERTED = 1,
277 	/**
278 	 * The conversion is finished
279 	 */
280 	FINISHED = 2,
281 	/**
282 	 * Flushing is finished
283 	 */
284 	FLUSHED = 3,
285 }
286 alias GConverterResult ConverterResult;
287 
288 /**
289  * Enumeration describing different kinds of native credential types.
290  *
291  * Since: 2.26
292  */
293 public enum GCredentialsType
294 {
295 	/**
296 	 * Indicates an invalid native credential type.
297 	 */
298 	INVALID = 0,
299 	/**
300 	 * The native credentials type is a `struct ucred`.
301 	 */
302 	LINUX_UCRED = 1,
303 	/**
304 	 * The native credentials type is a `struct cmsgcred`.
305 	 */
306 	FREEBSD_CMSGCRED = 2,
307 	/**
308 	 * The native credentials type is a `struct sockpeercred`. Added in 2.30.
309 	 */
310 	OPENBSD_SOCKPEERCRED = 3,
311 	/**
312 	 * The native credentials type is a `ucred_t`. Added in 2.40.
313 	 */
314 	SOLARIS_UCRED = 4,
315 	/**
316 	 * The native credentials type is a `struct unpcbid`. Added in 2.42.
317 	 */
318 	NETBSD_UNPCBID = 5,
319 	/**
320 	 * The native credentials type is a `struct xucred`. Added in 2.66.
321 	 */
322 	APPLE_XUCRED = 6,
323 	/**
324 	 * The native credentials type is a PID `DWORD`. Added in 2.72.
325 	 */
326 	WIN32_PID = 7,
327 }
328 alias GCredentialsType CredentialsType;
329 
330 /**
331  * Flags used in g_dbus_connection_call() and similar APIs.
332  *
333  * Since: 2.26
334  */
335 public enum GDBusCallFlags
336 {
337 	/**
338 	 * No flags set.
339 	 */
340 	NONE = 0,
341 	/**
342 	 * The bus must not launch
343 	 * an owner for the destination name in response to this method
344 	 * invocation.
345 	 */
346 	NO_AUTO_START = 1,
347 	/**
348 	 * the caller is prepared to
349 	 * wait for interactive authorization. Since 2.46.
350 	 */
351 	ALLOW_INTERACTIVE_AUTHORIZATION = 2,
352 }
353 alias GDBusCallFlags DBusCallFlags;
354 
355 /**
356  * Capabilities negotiated with the remote peer.
357  *
358  * Since: 2.26
359  */
360 public enum GDBusCapabilityFlags
361 {
362 	/**
363 	 * No flags set.
364 	 */
365 	NONE = 0,
366 	/**
367 	 * The connection
368 	 * supports exchanging UNIX file descriptors with the remote peer.
369 	 */
370 	UNIX_FD_PASSING = 1,
371 }
372 alias GDBusCapabilityFlags DBusCapabilityFlags;
373 
374 /**
375  * Flags used when creating a new #GDBusConnection.
376  *
377  * Since: 2.26
378  */
379 public enum GDBusConnectionFlags
380 {
381 	/**
382 	 * No flags set.
383 	 */
384 	NONE = 0,
385 	/**
386 	 * Perform authentication against server.
387 	 */
388 	AUTHENTICATION_CLIENT = 1,
389 	/**
390 	 * Perform authentication against client.
391 	 */
392 	AUTHENTICATION_SERVER = 2,
393 	/**
394 	 * When
395 	 * authenticating as a server, allow the anonymous authentication
396 	 * method.
397 	 */
398 	AUTHENTICATION_ALLOW_ANONYMOUS = 4,
399 	/**
400 	 * Pass this flag if connecting to a peer that is a
401 	 * message bus. This means that the Hello() method will be invoked as part of the connection setup.
402 	 */
403 	MESSAGE_BUS_CONNECTION = 8,
404 	/**
405 	 * If set, processing of D-Bus messages is
406 	 * delayed until g_dbus_connection_start_message_processing() is called.
407 	 */
408 	DELAY_MESSAGE_PROCESSING = 16,
409 	/**
410 	 * When authenticating
411 	 * as a server, require the UID of the peer to be the same as the UID of the server. (Since: 2.68)
412 	 */
413 	AUTHENTICATION_REQUIRE_SAME_USER = 32,
414 }
415 alias GDBusConnectionFlags DBusConnectionFlags;
416 
417 /**
418  * Error codes for the %G_DBUS_ERROR error domain.
419  *
420  * Since: 2.26
421  */
422 public enum GDBusError
423 {
424 	/**
425 	 * A generic error; "something went wrong" - see the error message for
426 	 * more.
427 	 */
428 	FAILED = 0,
429 	/**
430 	 * There was not enough memory to complete an operation.
431 	 */
432 	NO_MEMORY = 1,
433 	/**
434 	 * The bus doesn't know how to launch a service to supply the bus name
435 	 * you wanted.
436 	 */
437 	SERVICE_UNKNOWN = 2,
438 	/**
439 	 * The bus name you referenced doesn't exist (i.e. no application owns
440 	 * it).
441 	 */
442 	NAME_HAS_NO_OWNER = 3,
443 	/**
444 	 * No reply to a message expecting one, usually means a timeout occurred.
445 	 */
446 	NO_REPLY = 4,
447 	/**
448 	 * Something went wrong reading or writing to a socket, for example.
449 	 */
450 	IO_ERROR = 5,
451 	/**
452 	 * A D-Bus bus address was malformed.
453 	 */
454 	BAD_ADDRESS = 6,
455 	/**
456 	 * Requested operation isn't supported (like ENOSYS on UNIX).
457 	 */
458 	NOT_SUPPORTED = 7,
459 	/**
460 	 * Some limited resource is exhausted.
461 	 */
462 	LIMITS_EXCEEDED = 8,
463 	/**
464 	 * Security restrictions don't allow doing what you're trying to do.
465 	 */
466 	ACCESS_DENIED = 9,
467 	/**
468 	 * Authentication didn't work.
469 	 */
470 	AUTH_FAILED = 10,
471 	/**
472 	 * Unable to connect to server (probably caused by ECONNREFUSED on a
473 	 * socket).
474 	 */
475 	NO_SERVER = 11,
476 	/**
477 	 * Certain timeout errors, possibly ETIMEDOUT on a socket.  Note that
478 	 * %G_DBUS_ERROR_NO_REPLY is used for message reply timeouts. Warning:
479 	 * this is confusingly-named given that %G_DBUS_ERROR_TIMED_OUT also
480 	 * exists. We can't fix it for compatibility reasons so just be
481 	 * careful.
482 	 */
483 	TIMEOUT = 12,
484 	/**
485 	 * No network access (probably ENETUNREACH on a socket).
486 	 */
487 	NO_NETWORK = 13,
488 	/**
489 	 * Can't bind a socket since its address is in use (i.e. EADDRINUSE).
490 	 */
491 	ADDRESS_IN_USE = 14,
492 	/**
493 	 * The connection is disconnected and you're trying to use it.
494 	 */
495 	DISCONNECTED = 15,
496 	/**
497 	 * Invalid arguments passed to a method call.
498 	 */
499 	INVALID_ARGS = 16,
500 	/**
501 	 * Missing file.
502 	 */
503 	FILE_NOT_FOUND = 17,
504 	/**
505 	 * Existing file and the operation you're using does not silently overwrite.
506 	 */
507 	FILE_EXISTS = 18,
508 	/**
509 	 * Method name you invoked isn't known by the object you invoked it on.
510 	 */
511 	UNKNOWN_METHOD = 19,
512 	/**
513 	 * Certain timeout errors, e.g. while starting a service. Warning: this is
514 	 * confusingly-named given that %G_DBUS_ERROR_TIMEOUT also exists. We
515 	 * can't fix it for compatibility reasons so just be careful.
516 	 */
517 	TIMED_OUT = 20,
518 	/**
519 	 * Tried to remove or modify a match rule that didn't exist.
520 	 */
521 	MATCH_RULE_NOT_FOUND = 21,
522 	/**
523 	 * The match rule isn't syntactically valid.
524 	 */
525 	MATCH_RULE_INVALID = 22,
526 	/**
527 	 * While starting a new process, the exec() call failed.
528 	 */
529 	SPAWN_EXEC_FAILED = 23,
530 	/**
531 	 * While starting a new process, the fork() call failed.
532 	 */
533 	SPAWN_FORK_FAILED = 24,
534 	/**
535 	 * While starting a new process, the child exited with a status code.
536 	 */
537 	SPAWN_CHILD_EXITED = 25,
538 	/**
539 	 * While starting a new process, the child exited on a signal.
540 	 */
541 	SPAWN_CHILD_SIGNALED = 26,
542 	/**
543 	 * While starting a new process, something went wrong.
544 	 */
545 	SPAWN_FAILED = 27,
546 	/**
547 	 * We failed to setup the environment correctly.
548 	 */
549 	SPAWN_SETUP_FAILED = 28,
550 	/**
551 	 * We failed to setup the config parser correctly.
552 	 */
553 	SPAWN_CONFIG_INVALID = 29,
554 	/**
555 	 * Bus name was not valid.
556 	 */
557 	SPAWN_SERVICE_INVALID = 30,
558 	/**
559 	 * Service file not found in system-services directory.
560 	 */
561 	SPAWN_SERVICE_NOT_FOUND = 31,
562 	/**
563 	 * Permissions are incorrect on the setuid helper.
564 	 */
565 	SPAWN_PERMISSIONS_INVALID = 32,
566 	/**
567 	 * Service file invalid (Name, User or Exec missing).
568 	 */
569 	SPAWN_FILE_INVALID = 33,
570 	/**
571 	 * Tried to get a UNIX process ID and it wasn't available.
572 	 */
573 	SPAWN_NO_MEMORY = 34,
574 	/**
575 	 * Tried to get a UNIX process ID and it wasn't available.
576 	 */
577 	UNIX_PROCESS_ID_UNKNOWN = 35,
578 	/**
579 	 * A type signature is not valid.
580 	 */
581 	INVALID_SIGNATURE = 36,
582 	/**
583 	 * A file contains invalid syntax or is otherwise broken.
584 	 */
585 	INVALID_FILE_CONTENT = 37,
586 	/**
587 	 * Asked for SELinux security context and it wasn't available.
588 	 */
589 	SELINUX_SECURITY_CONTEXT_UNKNOWN = 38,
590 	/**
591 	 * Asked for ADT audit data and it wasn't available.
592 	 */
593 	ADT_AUDIT_DATA_UNKNOWN = 39,
594 	/**
595 	 * There's already an object with the requested object path.
596 	 */
597 	OBJECT_PATH_IN_USE = 40,
598 	/**
599 	 * Object you invoked a method on isn't known. Since 2.42
600 	 */
601 	UNKNOWN_OBJECT = 41,
602 	/**
603 	 * Interface you invoked a method on isn't known by the object. Since 2.42
604 	 */
605 	UNKNOWN_INTERFACE = 42,
606 	/**
607 	 * Property you tried to access isn't known by the object. Since 2.42
608 	 */
609 	UNKNOWN_PROPERTY = 43,
610 	/**
611 	 * Property you tried to set is read-only. Since 2.42
612 	 */
613 	PROPERTY_READ_ONLY = 44,
614 }
615 alias GDBusError DBusError;
616 
617 /**
618  * Flags describing the behavior of a #GDBusInterfaceSkeleton instance.
619  *
620  * Since: 2.30
621  */
622 public enum GDBusInterfaceSkeletonFlags
623 {
624 	/**
625 	 * No flags set.
626 	 */
627 	NONE = 0,
628 	/**
629 	 * Each method invocation is handled in
630 	 * a thread dedicated to the invocation. This means that the method implementation can use blocking IO
631 	 * without blocking any other part of the process. It also means that the method implementation must
632 	 * use locking to access data structures used by other threads.
633 	 */
634 	HANDLE_METHOD_INVOCATIONS_IN_THREAD = 1,
635 }
636 alias GDBusInterfaceSkeletonFlags DBusInterfaceSkeletonFlags;
637 
638 /**
639  * Enumeration used to describe the byte order of a D-Bus message.
640  *
641  * Since: 2.26
642  */
643 public enum GDBusMessageByteOrder
644 {
645 	/**
646 	 * The byte order is big endian.
647 	 */
648 	BIG_ENDIAN = 66,
649 	/**
650 	 * The byte order is little endian.
651 	 */
652 	LITTLE_ENDIAN = 108,
653 }
654 alias GDBusMessageByteOrder DBusMessageByteOrder;
655 
656 /**
657  * Message flags used in #GDBusMessage.
658  *
659  * Since: 2.26
660  */
661 public enum GDBusMessageFlags
662 {
663 	/**
664 	 * No flags set.
665 	 */
666 	NONE = 0,
667 	/**
668 	 * A reply is not expected.
669 	 */
670 	NO_REPLY_EXPECTED = 1,
671 	/**
672 	 * The bus must not launch an
673 	 * owner for the destination name in response to this message.
674 	 */
675 	NO_AUTO_START = 2,
676 	/**
677 	 * If set on a method
678 	 * call, this flag means that the caller is prepared to wait for interactive
679 	 * authorization. Since 2.46.
680 	 */
681 	ALLOW_INTERACTIVE_AUTHORIZATION = 4,
682 }
683 alias GDBusMessageFlags DBusMessageFlags;
684 
685 /**
686  * Header fields used in #GDBusMessage.
687  *
688  * Since: 2.26
689  */
690 public enum GDBusMessageHeaderField
691 {
692 	/**
693 	 * Not a valid header field.
694 	 */
695 	INVALID = 0,
696 	/**
697 	 * The object path.
698 	 */
699 	PATH = 1,
700 	/**
701 	 * The interface name.
702 	 */
703 	INTERFACE = 2,
704 	/**
705 	 * The method or signal name.
706 	 */
707 	MEMBER = 3,
708 	/**
709 	 * The name of the error that occurred.
710 	 */
711 	ERROR_NAME = 4,
712 	/**
713 	 * The serial number the message is a reply to.
714 	 */
715 	REPLY_SERIAL = 5,
716 	/**
717 	 * The name the message is intended for.
718 	 */
719 	DESTINATION = 6,
720 	/**
721 	 * Unique name of the sender of the message (filled in by the bus).
722 	 */
723 	SENDER = 7,
724 	/**
725 	 * The signature of the message body.
726 	 */
727 	SIGNATURE = 8,
728 	/**
729 	 * The number of UNIX file descriptors that accompany the message.
730 	 */
731 	NUM_UNIX_FDS = 9,
732 }
733 alias GDBusMessageHeaderField DBusMessageHeaderField;
734 
735 /**
736  * Message types used in #GDBusMessage.
737  *
738  * Since: 2.26
739  */
740 public enum GDBusMessageType
741 {
742 	/**
743 	 * Message is of invalid type.
744 	 */
745 	INVALID = 0,
746 	/**
747 	 * Method call.
748 	 */
749 	METHOD_CALL = 1,
750 	/**
751 	 * Method reply.
752 	 */
753 	METHOD_RETURN = 2,
754 	/**
755 	 * Error reply.
756 	 */
757 	ERROR = 3,
758 	/**
759 	 * Signal emission.
760 	 */
761 	SIGNAL = 4,
762 }
763 alias GDBusMessageType DBusMessageType;
764 
765 /**
766  * Flags used when constructing a #GDBusObjectManagerClient.
767  *
768  * Since: 2.30
769  */
770 public enum GDBusObjectManagerClientFlags
771 {
772 	/**
773 	 * No flags set.
774 	 */
775 	NONE = 0,
776 	/**
777 	 * If not set and the
778 	 * manager is for a well-known name, then request the bus to launch
779 	 * an owner for the name if no-one owns the name. This flag can only
780 	 * be used in managers for well-known names.
781 	 */
782 	DO_NOT_AUTO_START = 1,
783 }
784 alias GDBusObjectManagerClientFlags DBusObjectManagerClientFlags;
785 
786 /**
787  * Flags describing the access control of a D-Bus property.
788  *
789  * Since: 2.26
790  */
791 public enum GDBusPropertyInfoFlags
792 {
793 	/**
794 	 * No flags set.
795 	 */
796 	NONE = 0,
797 	/**
798 	 * Property is readable.
799 	 */
800 	READABLE = 1,
801 	/**
802 	 * Property is writable.
803 	 */
804 	WRITABLE = 2,
805 }
806 alias GDBusPropertyInfoFlags DBusPropertyInfoFlags;
807 
808 /**
809  * Flags used when constructing an instance of a #GDBusProxy derived class.
810  *
811  * Since: 2.26
812  */
813 public enum GDBusProxyFlags
814 {
815 	/**
816 	 * No flags set.
817 	 */
818 	NONE = 0,
819 	/**
820 	 * Don't load properties.
821 	 */
822 	DO_NOT_LOAD_PROPERTIES = 1,
823 	/**
824 	 * Don't connect to signals on the remote object.
825 	 */
826 	DO_NOT_CONNECT_SIGNALS = 2,
827 	/**
828 	 * If the proxy is for a well-known name,
829 	 * do not ask the bus to launch an owner during proxy initialization or a method call.
830 	 * This flag is only meaningful in proxies for well-known names.
831 	 */
832 	DO_NOT_AUTO_START = 4,
833 	/**
834 	 * If set, the property value for any __invalidated property__ will be (asynchronously) retrieved upon receiving the [`PropertiesChanged`](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties) D-Bus signal and the property will not cause emission of the #GDBusProxy::g-properties-changed signal. When the value is received the #GDBusProxy::g-properties-changed signal is emitted for the property along with the retrieved value. Since 2.32.
835 	 */
836 	GET_INVALIDATED_PROPERTIES = 8,
837 	/**
838 	 * If the proxy is for a well-known name,
839 	 * do not ask the bus to launch an owner during proxy initialization, but allow it to be
840 	 * autostarted by a method call. This flag is only meaningful in proxies for well-known names,
841 	 * and only if %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START is not also specified.
842 	 */
843 	DO_NOT_AUTO_START_AT_CONSTRUCTION = 16,
844 	/**
845 	 * Don't actually send the AddMatch D-Bus
846 	 * call for this signal subscription. This gives you more control
847 	 * over which match rules you add (but you must add them manually). (Since: 2.72)
848 	 */
849 	NO_MATCH_RULE = 32,
850 }
851 alias GDBusProxyFlags DBusProxyFlags;
852 
853 /**
854  * Flags used when sending #GDBusMessages on a #GDBusConnection.
855  *
856  * Since: 2.26
857  */
858 public enum GDBusSendMessageFlags
859 {
860 	/**
861 	 * No flags set.
862 	 */
863 	NONE = 0,
864 	/**
865 	 * Do not automatically
866 	 * assign a serial number from the #GDBusConnection object when
867 	 * sending a message.
868 	 */
869 	PRESERVE_SERIAL = 1,
870 }
871 alias GDBusSendMessageFlags DBusSendMessageFlags;
872 
873 /**
874  * Flags used when creating a #GDBusServer.
875  *
876  * Since: 2.26
877  */
878 public enum GDBusServerFlags
879 {
880 	/**
881 	 * No flags set.
882 	 */
883 	NONE = 0,
884 	/**
885 	 * All #GDBusServer::new-connection
886 	 * signals will run in separated dedicated threads (see signal for
887 	 * details).
888 	 */
889 	RUN_IN_THREAD = 1,
890 	/**
891 	 * Allow the anonymous
892 	 * authentication method.
893 	 */
894 	AUTHENTICATION_ALLOW_ANONYMOUS = 2,
895 	/**
896 	 * Require the UID of the
897 	 * peer to be the same as the UID of the server when authenticating. (Since: 2.68)
898 	 */
899 	AUTHENTICATION_REQUIRE_SAME_USER = 4,
900 }
901 alias GDBusServerFlags DBusServerFlags;
902 
903 /**
904  * Flags used when subscribing to signals via g_dbus_connection_signal_subscribe().
905  *
906  * Since: 2.26
907  */
908 public enum GDBusSignalFlags
909 {
910 	/**
911 	 * No flags set.
912 	 */
913 	NONE = 0,
914 	/**
915 	 * Don't actually send the AddMatch
916 	 * D-Bus call for this signal subscription.  This gives you more control
917 	 * over which match rules you add (but you must add them manually).
918 	 */
919 	NO_MATCH_RULE = 1,
920 	/**
921 	 * Match first arguments that
922 	 * contain a bus or interface name with the given namespace.
923 	 */
924 	MATCH_ARG0_NAMESPACE = 2,
925 	/**
926 	 * Match first arguments that
927 	 * contain an object path that is either equivalent to the given path,
928 	 * or one of the paths is a subpath of the other.
929 	 */
930 	MATCH_ARG0_PATH = 4,
931 }
932 alias GDBusSignalFlags DBusSignalFlags;
933 
934 /**
935  * Flags passed to g_dbus_connection_register_subtree().
936  *
937  * Since: 2.26
938  */
939 public enum GDBusSubtreeFlags
940 {
941 	/**
942 	 * No flags set.
943 	 */
944 	NONE = 0,
945 	/**
946 	 * Method calls to objects not in the enumerated range
947 	 * will still be dispatched. This is useful if you want
948 	 * to dynamically spawn objects in the subtree.
949 	 */
950 	DISPATCH_TO_UNENUMERATED_NODES = 1,
951 }
952 alias GDBusSubtreeFlags DBusSubtreeFlags;
953 
954 /**
955  * #GDataStreamByteOrder is used to ensure proper endianness of streaming data sources
956  * across various machine architectures.
957  */
958 public enum GDataStreamByteOrder
959 {
960 	/**
961 	 * Selects Big Endian byte order.
962 	 */
963 	BIG_ENDIAN = 0,
964 	/**
965 	 * Selects Little Endian byte order.
966 	 */
967 	LITTLE_ENDIAN = 1,
968 	/**
969 	 * Selects endianness based on host machine's architecture.
970 	 */
971 	HOST_ENDIAN = 2,
972 }
973 alias GDataStreamByteOrder DataStreamByteOrder;
974 
975 /**
976  * #GDataStreamNewlineType is used when checking for or setting the line endings for a given file.
977  */
978 public enum GDataStreamNewlineType
979 {
980 	/**
981 	 * Selects "LF" line endings, common on most modern UNIX platforms.
982 	 */
983 	LF = 0,
984 	/**
985 	 * Selects "CR" line endings.
986 	 */
987 	CR = 1,
988 	/**
989 	 * Selects "CR, LF" line ending, common on Microsoft Windows.
990 	 */
991 	CR_LF = 2,
992 	/**
993 	 * Automatically try to handle any line ending type.
994 	 */
995 	ANY = 3,
996 }
997 alias GDataStreamNewlineType DataStreamNewlineType;
998 
999 /**
1000  * Flags used when starting a drive.
1001  *
1002  * Since: 2.22
1003  */
1004 public enum GDriveStartFlags
1005 {
1006 	/**
1007 	 * No flags set.
1008 	 */
1009 	NONE = 0,
1010 }
1011 alias GDriveStartFlags DriveStartFlags;
1012 
1013 /**
1014  * Enumeration describing how a drive can be started/stopped.
1015  *
1016  * Since: 2.22
1017  */
1018 public enum GDriveStartStopType
1019 {
1020 	/**
1021 	 * Unknown or drive doesn't support
1022 	 * start/stop.
1023 	 */
1024 	UNKNOWN = 0,
1025 	/**
1026 	 * The stop method will physically
1027 	 * shut down the drive and e.g. power down the port the drive is
1028 	 * attached to.
1029 	 */
1030 	SHUTDOWN = 1,
1031 	/**
1032 	 * The start/stop methods are used
1033 	 * for connecting/disconnect to the drive over the network.
1034 	 */
1035 	NETWORK = 2,
1036 	/**
1037 	 * The start/stop methods will
1038 	 * assemble/disassemble a virtual drive from several physical
1039 	 * drives.
1040 	 */
1041 	MULTIDISK = 3,
1042 	/**
1043 	 * The start/stop methods will
1044 	 * unlock/lock the disk (for example using the ATA <quote>SECURITY
1045 	 * UNLOCK DEVICE</quote> command)
1046 	 */
1047 	PASSWORD = 4,
1048 }
1049 alias GDriveStartStopType DriveStartStopType;
1050 
1051 /**
1052  * GEmblemOrigin is used to add information about the origin of the emblem
1053  * to #GEmblem.
1054  *
1055  * Since: 2.18
1056  */
1057 public enum GEmblemOrigin
1058 {
1059 	/**
1060 	 * Emblem of unknown origin
1061 	 */
1062 	UNKNOWN = 0,
1063 	/**
1064 	 * Emblem adds device-specific information
1065 	 */
1066 	DEVICE = 1,
1067 	/**
1068 	 * Emblem depicts live metadata, such as "readonly"
1069 	 */
1070 	LIVEMETADATA = 2,
1071 	/**
1072 	 * Emblem comes from a user-defined tag, e.g. set by nautilus (in the future)
1073 	 */
1074 	TAG = 3,
1075 }
1076 alias GEmblemOrigin EmblemOrigin;
1077 
1078 /**
1079  * Flags specifying the behaviour of an attribute.
1080  */
1081 public enum GFileAttributeInfoFlags
1082 {
1083 	/**
1084 	 * no flags set.
1085 	 */
1086 	NONE = 0,
1087 	/**
1088 	 * copy the attribute values when the file is copied.
1089 	 */
1090 	COPY_WITH_FILE = 1,
1091 	/**
1092 	 * copy the attribute values when the file is moved.
1093 	 */
1094 	COPY_WHEN_MOVED = 2,
1095 }
1096 alias GFileAttributeInfoFlags FileAttributeInfoFlags;
1097 
1098 /**
1099  * Used by g_file_set_attributes_from_info() when setting file attributes.
1100  */
1101 public enum GFileAttributeStatus
1102 {
1103 	/**
1104 	 * Attribute value is unset (empty).
1105 	 */
1106 	UNSET = 0,
1107 	/**
1108 	 * Attribute value is set.
1109 	 */
1110 	SET = 1,
1111 	/**
1112 	 * Indicates an error in setting the value.
1113 	 */
1114 	ERROR_SETTING = 2,
1115 }
1116 alias GFileAttributeStatus FileAttributeStatus;
1117 
1118 /**
1119  * The data types for file attributes.
1120  */
1121 public enum GFileAttributeType
1122 {
1123 	/**
1124 	 * indicates an invalid or uninitialized type.
1125 	 */
1126 	INVALID = 0,
1127 	/**
1128 	 * a null terminated UTF8 string.
1129 	 */
1130 	STRING = 1,
1131 	/**
1132 	 * a zero terminated string of non-zero bytes.
1133 	 */
1134 	BYTE_STRING = 2,
1135 	/**
1136 	 * a boolean value.
1137 	 */
1138 	BOOLEAN = 3,
1139 	/**
1140 	 * an unsigned 4-byte/32-bit integer.
1141 	 */
1142 	UINT32 = 4,
1143 	/**
1144 	 * a signed 4-byte/32-bit integer.
1145 	 */
1146 	INT32 = 5,
1147 	/**
1148 	 * an unsigned 8-byte/64-bit integer.
1149 	 */
1150 	UINT64 = 6,
1151 	/**
1152 	 * a signed 8-byte/64-bit integer.
1153 	 */
1154 	INT64 = 7,
1155 	/**
1156 	 * a #GObject.
1157 	 */
1158 	OBJECT = 8,
1159 	/**
1160 	 * a %NULL terminated char **. Since 2.22
1161 	 */
1162 	STRINGV = 9,
1163 }
1164 alias GFileAttributeType FileAttributeType;
1165 
1166 /**
1167  * Flags used when copying or moving files.
1168  */
1169 public enum GFileCopyFlags
1170 {
1171 	/**
1172 	 * No flags set.
1173 	 */
1174 	NONE = 0,
1175 	/**
1176 	 * Overwrite any existing files
1177 	 */
1178 	OVERWRITE = 1,
1179 	/**
1180 	 * Make a backup of any existing files.
1181 	 */
1182 	BACKUP = 2,
1183 	/**
1184 	 * Don't follow symlinks.
1185 	 */
1186 	NOFOLLOW_SYMLINKS = 4,
1187 	/**
1188 	 * Copy all file metadata instead of just default set used for copy (see #GFileInfo).
1189 	 */
1190 	ALL_METADATA = 8,
1191 	/**
1192 	 * Don't use copy and delete fallback if native move not supported.
1193 	 */
1194 	NO_FALLBACK_FOR_MOVE = 16,
1195 	/**
1196 	 * Leaves target file with default perms, instead of setting the source file perms.
1197 	 */
1198 	TARGET_DEFAULT_PERMS = 32,
1199 }
1200 alias GFileCopyFlags FileCopyFlags;
1201 
1202 /**
1203  * Flags used when an operation may create a file.
1204  */
1205 public enum GFileCreateFlags
1206 {
1207 	/**
1208 	 * No flags set.
1209 	 */
1210 	NONE = 0,
1211 	/**
1212 	 * Create a file that can only be
1213 	 * accessed by the current user.
1214 	 */
1215 	PRIVATE = 1,
1216 	/**
1217 	 * Replace the destination
1218 	 * as if it didn't exist before. Don't try to keep any old
1219 	 * permissions, replace instead of following links. This
1220 	 * is generally useful if you're doing a "copy over"
1221 	 * rather than a "save new version of" replace operation.
1222 	 * You can think of it as "unlink destination" before
1223 	 * writing to it, although the implementation may not
1224 	 * be exactly like that. This flag can only be used with
1225 	 * g_file_replace() and its variants, including g_file_replace_contents().
1226 	 * Since 2.20
1227 	 */
1228 	REPLACE_DESTINATION = 2,
1229 }
1230 alias GFileCreateFlags FileCreateFlags;
1231 
1232 /**
1233  * Flags that can be used with g_file_measure_disk_usage().
1234  *
1235  * Since: 2.38
1236  */
1237 public enum GFileMeasureFlags
1238 {
1239 	/**
1240 	 * No flags set.
1241 	 */
1242 	NONE = 0,
1243 	/**
1244 	 * Report any error encountered
1245 	 * while traversing the directory tree.  Normally errors are only
1246 	 * reported for the toplevel file.
1247 	 */
1248 	REPORT_ANY_ERROR = 2,
1249 	/**
1250 	 * Tally usage based on apparent file
1251 	 * sizes.  Normally, the block-size is used, if available, as this is a
1252 	 * more accurate representation of disk space used.
1253 	 * Compare with `du --apparent-size`.
1254 	 */
1255 	APPARENT_SIZE = 4,
1256 	/**
1257 	 * Do not cross mount point boundaries.
1258 	 * Compare with `du -x`.
1259 	 */
1260 	NO_XDEV = 8,
1261 }
1262 alias GFileMeasureFlags FileMeasureFlags;
1263 
1264 /**
1265  * Specifies what type of event a monitor event is.
1266  */
1267 public enum GFileMonitorEvent
1268 {
1269 	/**
1270 	 * a file changed.
1271 	 */
1272 	CHANGED = 0,
1273 	/**
1274 	 * a hint that this was probably the last change in a set of changes.
1275 	 */
1276 	CHANGES_DONE_HINT = 1,
1277 	/**
1278 	 * a file was deleted.
1279 	 */
1280 	DELETED = 2,
1281 	/**
1282 	 * a file was created.
1283 	 */
1284 	CREATED = 3,
1285 	/**
1286 	 * a file attribute was changed.
1287 	 */
1288 	ATTRIBUTE_CHANGED = 4,
1289 	/**
1290 	 * the file location will soon be unmounted.
1291 	 */
1292 	PRE_UNMOUNT = 5,
1293 	/**
1294 	 * the file location was unmounted.
1295 	 */
1296 	UNMOUNTED = 6,
1297 	/**
1298 	 * the file was moved -- only sent if the
1299 	 * (deprecated) %G_FILE_MONITOR_SEND_MOVED flag is set
1300 	 */
1301 	MOVED = 7,
1302 	/**
1303 	 * the file was renamed within the
1304 	 * current directory -- only sent if the %G_FILE_MONITOR_WATCH_MOVES
1305 	 * flag is set.  Since: 2.46.
1306 	 */
1307 	RENAMED = 8,
1308 	/**
1309 	 * the file was moved into the
1310 	 * monitored directory from another location -- only sent if the
1311 	 * %G_FILE_MONITOR_WATCH_MOVES flag is set.  Since: 2.46.
1312 	 */
1313 	MOVED_IN = 9,
1314 	/**
1315 	 * the file was moved out of the
1316 	 * monitored directory to another location -- only sent if the
1317 	 * %G_FILE_MONITOR_WATCH_MOVES flag is set.  Since: 2.46
1318 	 */
1319 	MOVED_OUT = 10,
1320 }
1321 alias GFileMonitorEvent FileMonitorEvent;
1322 
1323 /**
1324  * Flags used to set what a #GFileMonitor will watch for.
1325  */
1326 public enum GFileMonitorFlags
1327 {
1328 	/**
1329 	 * No flags set.
1330 	 */
1331 	NONE = 0,
1332 	/**
1333 	 * Watch for mount events.
1334 	 */
1335 	WATCH_MOUNTS = 1,
1336 	/**
1337 	 * Pair DELETED and CREATED events caused
1338 	 * by file renames (moves) and send a single G_FILE_MONITOR_EVENT_MOVED
1339 	 * event instead (NB: not supported on all backends; the default
1340 	 * behaviour -without specifying this flag- is to send single DELETED
1341 	 * and CREATED events).  Deprecated since 2.46: use
1342 	 * %G_FILE_MONITOR_WATCH_MOVES instead.
1343 	 */
1344 	SEND_MOVED = 2,
1345 	/**
1346 	 * Watch for changes to the file made
1347 	 * via another hard link. Since 2.36.
1348 	 */
1349 	WATCH_HARD_LINKS = 4,
1350 	/**
1351 	 * Watch for rename operations on a
1352 	 * monitored directory.  This causes %G_FILE_MONITOR_EVENT_RENAMED,
1353 	 * %G_FILE_MONITOR_EVENT_MOVED_IN and %G_FILE_MONITOR_EVENT_MOVED_OUT
1354 	 * events to be emitted when possible.  Since: 2.46.
1355 	 */
1356 	WATCH_MOVES = 8,
1357 }
1358 alias GFileMonitorFlags FileMonitorFlags;
1359 
1360 /**
1361  * Flags used when querying a #GFileInfo.
1362  */
1363 public enum GFileQueryInfoFlags
1364 {
1365 	/**
1366 	 * No flags set.
1367 	 */
1368 	NONE = 0,
1369 	/**
1370 	 * Don't follow symlinks.
1371 	 */
1372 	NOFOLLOW_SYMLINKS = 1,
1373 }
1374 alias GFileQueryInfoFlags FileQueryInfoFlags;
1375 
1376 /**
1377  * Indicates the file's on-disk type.
1378  *
1379  * On Windows systems a file will never have %G_FILE_TYPE_SYMBOLIC_LINK type;
1380  * use #GFileInfo and %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK to determine
1381  * whether a file is a symlink or not. This is due to the fact that NTFS does
1382  * not have a single filesystem object type for symbolic links - it has
1383  * files that symlink to files, and directories that symlink to directories.
1384  * #GFileType enumeration cannot precisely represent this important distinction,
1385  * which is why all Windows symlinks will continue to be reported as
1386  * %G_FILE_TYPE_REGULAR or %G_FILE_TYPE_DIRECTORY.
1387  */
1388 public enum GFileType
1389 {
1390 	/**
1391 	 * File's type is unknown.
1392 	 */
1393 	UNKNOWN = 0,
1394 	/**
1395 	 * File handle represents a regular file.
1396 	 */
1397 	REGULAR = 1,
1398 	/**
1399 	 * File handle represents a directory.
1400 	 */
1401 	DIRECTORY = 2,
1402 	/**
1403 	 * File handle represents a symbolic link
1404 	 * (Unix systems).
1405 	 */
1406 	SYMBOLIC_LINK = 3,
1407 	/**
1408 	 * File is a "special" file, such as a socket, fifo,
1409 	 * block device, or character device.
1410 	 */
1411 	SPECIAL = 4,
1412 	/**
1413 	 * File is a shortcut (Windows systems).
1414 	 */
1415 	SHORTCUT = 5,
1416 	/**
1417 	 * File is a mountable location.
1418 	 */
1419 	MOUNTABLE = 6,
1420 }
1421 alias GFileType FileType;
1422 
1423 /**
1424  * Indicates a hint from the file system whether files should be
1425  * previewed in a file manager. Returned as the value of the key
1426  * %G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW.
1427  */
1428 public enum GFilesystemPreviewType
1429 {
1430 	/**
1431 	 * Only preview files if user has explicitly requested it.
1432 	 */
1433 	IF_ALWAYS = 0,
1434 	/**
1435 	 * Preview files if user has requested preview of "local" files.
1436 	 */
1437 	IF_LOCAL = 1,
1438 	/**
1439 	 * Never preview files.
1440 	 */
1441 	NEVER = 2,
1442 }
1443 alias GFilesystemPreviewType FilesystemPreviewType;
1444 
1445 /**
1446  * Error codes returned by GIO functions.
1447  *
1448  * Note that this domain may be extended in future GLib releases. In
1449  * general, new error codes either only apply to new APIs, or else
1450  * replace %G_IO_ERROR_FAILED in cases that were not explicitly
1451  * distinguished before. You should therefore avoid writing code like
1452  * |[<!-- language="C" -->
1453  * if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED))
1454  * {
1455  * // Assume that this is EPRINTERONFIRE
1456  * ...
1457  * }
1458  * ]|
1459  * but should instead treat all unrecognized error codes the same as
1460  * %G_IO_ERROR_FAILED.
1461  *
1462  * See also #GPollableReturn for a cheaper way of returning
1463  * %G_IO_ERROR_WOULD_BLOCK to callers without allocating a #GError.
1464  */
1465 public enum GIOErrorEnum
1466 {
1467 	/**
1468 	 * Generic error condition for when an operation fails
1469 	 * and no more specific #GIOErrorEnum value is defined.
1470 	 */
1471 	FAILED = 0,
1472 	/**
1473 	 * File not found.
1474 	 */
1475 	NOT_FOUND = 1,
1476 	/**
1477 	 * File already exists.
1478 	 */
1479 	EXISTS = 2,
1480 	/**
1481 	 * File is a directory.
1482 	 */
1483 	IS_DIRECTORY = 3,
1484 	/**
1485 	 * File is not a directory.
1486 	 */
1487 	NOT_DIRECTORY = 4,
1488 	/**
1489 	 * File is a directory that isn't empty.
1490 	 */
1491 	NOT_EMPTY = 5,
1492 	/**
1493 	 * File is not a regular file.
1494 	 */
1495 	NOT_REGULAR_FILE = 6,
1496 	/**
1497 	 * File is not a symbolic link.
1498 	 */
1499 	NOT_SYMBOLIC_LINK = 7,
1500 	/**
1501 	 * File cannot be mounted.
1502 	 */
1503 	NOT_MOUNTABLE_FILE = 8,
1504 	/**
1505 	 * Filename is too many characters.
1506 	 */
1507 	FILENAME_TOO_LONG = 9,
1508 	/**
1509 	 * Filename is invalid or contains invalid characters.
1510 	 */
1511 	INVALID_FILENAME = 10,
1512 	/**
1513 	 * File contains too many symbolic links.
1514 	 */
1515 	TOO_MANY_LINKS = 11,
1516 	/**
1517 	 * No space left on drive.
1518 	 */
1519 	NO_SPACE = 12,
1520 	/**
1521 	 * Invalid argument.
1522 	 */
1523 	INVALID_ARGUMENT = 13,
1524 	/**
1525 	 * Permission denied.
1526 	 */
1527 	PERMISSION_DENIED = 14,
1528 	/**
1529 	 * Operation (or one of its parameters) not supported
1530 	 */
1531 	NOT_SUPPORTED = 15,
1532 	/**
1533 	 * File isn't mounted.
1534 	 */
1535 	NOT_MOUNTED = 16,
1536 	/**
1537 	 * File is already mounted.
1538 	 */
1539 	ALREADY_MOUNTED = 17,
1540 	/**
1541 	 * File was closed.
1542 	 */
1543 	CLOSED = 18,
1544 	/**
1545 	 * Operation was cancelled. See #GCancellable.
1546 	 */
1547 	CANCELLED = 19,
1548 	/**
1549 	 * Operations are still pending.
1550 	 */
1551 	PENDING = 20,
1552 	/**
1553 	 * File is read only.
1554 	 */
1555 	READ_ONLY = 21,
1556 	/**
1557 	 * Backup couldn't be created.
1558 	 */
1559 	CANT_CREATE_BACKUP = 22,
1560 	/**
1561 	 * File's Entity Tag was incorrect.
1562 	 */
1563 	WRONG_ETAG = 23,
1564 	/**
1565 	 * Operation timed out.
1566 	 */
1567 	TIMED_OUT = 24,
1568 	/**
1569 	 * Operation would be recursive.
1570 	 */
1571 	WOULD_RECURSE = 25,
1572 	/**
1573 	 * File is busy.
1574 	 */
1575 	BUSY = 26,
1576 	/**
1577 	 * Operation would block.
1578 	 */
1579 	WOULD_BLOCK = 27,
1580 	/**
1581 	 * Host couldn't be found (remote operations).
1582 	 */
1583 	HOST_NOT_FOUND = 28,
1584 	/**
1585 	 * Operation would merge files.
1586 	 */
1587 	WOULD_MERGE = 29,
1588 	/**
1589 	 * Operation failed and a helper program has
1590 	 * already interacted with the user. Do not display any error dialog.
1591 	 */
1592 	FAILED_HANDLED = 30,
1593 	/**
1594 	 * The current process has too many files
1595 	 * open and can't open any more. Duplicate descriptors do count toward
1596 	 * this limit. Since 2.20
1597 	 */
1598 	TOO_MANY_OPEN_FILES = 31,
1599 	/**
1600 	 * The object has not been initialized. Since 2.22
1601 	 */
1602 	NOT_INITIALIZED = 32,
1603 	/**
1604 	 * The requested address is already in use. Since 2.22
1605 	 */
1606 	ADDRESS_IN_USE = 33,
1607 	/**
1608 	 * Need more input to finish operation. Since 2.24
1609 	 */
1610 	PARTIAL_INPUT = 34,
1611 	/**
1612 	 * The input data was invalid. Since 2.24
1613 	 */
1614 	INVALID_DATA = 35,
1615 	/**
1616 	 * A remote object generated an error that
1617 	 * doesn't correspond to a locally registered #GError error
1618 	 * domain. Use g_dbus_error_get_remote_error() to extract the D-Bus
1619 	 * error name and g_dbus_error_strip_remote_error() to fix up the
1620 	 * message so it matches what was received on the wire. Since 2.26.
1621 	 */
1622 	DBUS_ERROR = 36,
1623 	/**
1624 	 * Host unreachable. Since 2.26
1625 	 */
1626 	HOST_UNREACHABLE = 37,
1627 	/**
1628 	 * Network unreachable. Since 2.26
1629 	 */
1630 	NETWORK_UNREACHABLE = 38,
1631 	/**
1632 	 * Connection refused. Since 2.26
1633 	 */
1634 	CONNECTION_REFUSED = 39,
1635 	/**
1636 	 * Connection to proxy server failed. Since 2.26
1637 	 */
1638 	PROXY_FAILED = 40,
1639 	/**
1640 	 * Proxy authentication failed. Since 2.26
1641 	 */
1642 	PROXY_AUTH_FAILED = 41,
1643 	/**
1644 	 * Proxy server needs authentication. Since 2.26
1645 	 */
1646 	PROXY_NEED_AUTH = 42,
1647 	/**
1648 	 * Proxy connection is not allowed by ruleset.
1649 	 * Since 2.26
1650 	 */
1651 	PROXY_NOT_ALLOWED = 43,
1652 	/**
1653 	 * Broken pipe. Since 2.36
1654 	 */
1655 	BROKEN_PIPE = 44,
1656 	/**
1657 	 * Connection closed by peer. Note that this
1658 	 * is the same code as %G_IO_ERROR_BROKEN_PIPE; before 2.44 some
1659 	 * "connection closed" errors returned %G_IO_ERROR_BROKEN_PIPE, but others
1660 	 * returned %G_IO_ERROR_FAILED. Now they should all return the same
1661 	 * value, which has this more logical name. Since 2.44.
1662 	 */
1663 	CONNECTION_CLOSED = 44,
1664 	/**
1665 	 * Transport endpoint is not connected. Since 2.44
1666 	 */
1667 	NOT_CONNECTED = 45,
1668 	/**
1669 	 * Message too large. Since 2.48.
1670 	 */
1671 	MESSAGE_TOO_LARGE = 46,
1672 }
1673 alias GIOErrorEnum IOErrorEnum;
1674 
1675 /**
1676  * Flags for use with g_io_module_scope_new().
1677  *
1678  * Since: 2.30
1679  */
1680 public enum GIOModuleScopeFlags
1681 {
1682 	/**
1683 	 * No module scan flags
1684 	 */
1685 	NONE = 0,
1686 	/**
1687 	 * When using this scope to load or
1688 	 * scan modules, automatically block a modules which has the same base
1689 	 * basename as previously loaded module.
1690 	 */
1691 	BLOCK_DUPLICATES = 1,
1692 }
1693 alias GIOModuleScopeFlags IOModuleScopeFlags;
1694 
1695 /**
1696  * GIOStreamSpliceFlags determine how streams should be spliced.
1697  *
1698  * Since: 2.28
1699  */
1700 public enum GIOStreamSpliceFlags
1701 {
1702 	/**
1703 	 * Do not close either stream.
1704 	 */
1705 	NONE = 0,
1706 	/**
1707 	 * Close the first stream after
1708 	 * the splice.
1709 	 */
1710 	CLOSE_STREAM1 = 1,
1711 	/**
1712 	 * Close the second stream after
1713 	 * the splice.
1714 	 */
1715 	CLOSE_STREAM2 = 2,
1716 	/**
1717 	 * Wait for both splice operations to finish
1718 	 * before calling the callback.
1719 	 */
1720 	WAIT_FOR_BOTH = 4,
1721 }
1722 alias GIOStreamSpliceFlags IOStreamSpliceFlags;
1723 
1724 /**
1725  * Memory availability warning levels.
1726  *
1727  * Note that because new values might be added, it is recommended that applications check
1728  * #GMemoryMonitorWarningLevel as ranges, for example:
1729  * |[<!-- language="C" -->
1730  * if (warning_level > G_MEMORY_MONITOR_WARNING_LEVEL_LOW)
1731  * drop_caches ();
1732  * ]|
1733  *
1734  * Since: 2.64
1735  */
1736 public enum GMemoryMonitorWarningLevel
1737 {
1738 	/**
1739 	 * Memory on the device is low, processes
1740 	 * should free up unneeded resources (for example, in-memory caches) so they can
1741 	 * be used elsewhere.
1742 	 */
1743 	LOW = 50,
1744 	/**
1745 	 * Same as @G_MEMORY_MONITOR_WARNING_LEVEL_LOW
1746 	 * but the device has even less free memory, so processes should try harder to free
1747 	 * up unneeded resources. If your process does not need to stay running, it is a
1748 	 * good time for it to quit.
1749 	 */
1750 	MEDIUM = 100,
1751 	/**
1752 	 * The system will soon start terminating
1753 	 * processes to reclaim memory, including background processes.
1754 	 */
1755 	CRITICAL = 255,
1756 }
1757 alias GMemoryMonitorWarningLevel MemoryMonitorWarningLevel;
1758 
1759 /**
1760  * Flags used when mounting a mount.
1761  */
1762 public enum GMountMountFlags
1763 {
1764 	/**
1765 	 * No flags set.
1766 	 */
1767 	NONE = 0,
1768 }
1769 alias GMountMountFlags MountMountFlags;
1770 
1771 /**
1772  * #GMountOperationResult is returned as a result when a request for
1773  * information is send by the mounting operation.
1774  */
1775 public enum GMountOperationResult
1776 {
1777 	/**
1778 	 * The request was fulfilled and the
1779 	 * user specified data is now available
1780 	 */
1781 	HANDLED = 0,
1782 	/**
1783 	 * The user requested the mount operation
1784 	 * to be aborted
1785 	 */
1786 	ABORTED = 1,
1787 	/**
1788 	 * The request was unhandled (i.e. not
1789 	 * implemented)
1790 	 */
1791 	UNHANDLED = 2,
1792 }
1793 alias GMountOperationResult MountOperationResult;
1794 
1795 /**
1796  * Flags used when an unmounting a mount.
1797  */
1798 public enum GMountUnmountFlags
1799 {
1800 	/**
1801 	 * No flags set.
1802 	 */
1803 	NONE = 0,
1804 	/**
1805 	 * Unmount even if there are outstanding
1806 	 * file operations on the mount.
1807 	 */
1808 	FORCE = 1,
1809 }
1810 alias GMountUnmountFlags MountUnmountFlags;
1811 
1812 /**
1813  * The host's network connectivity state, as reported by #GNetworkMonitor.
1814  *
1815  * Since: 2.44
1816  */
1817 public enum GNetworkConnectivity
1818 {
1819 	/**
1820 	 * The host is not configured with a
1821 	 * route to the Internet; it may or may not be connected to a local
1822 	 * network.
1823 	 */
1824 	LOCAL = 1,
1825 	/**
1826 	 * The host is connected to a network, but
1827 	 * does not appear to be able to reach the full Internet, perhaps
1828 	 * due to upstream network problems.
1829 	 */
1830 	LIMITED = 2,
1831 	/**
1832 	 * The host is behind a captive portal and
1833 	 * cannot reach the full Internet.
1834 	 */
1835 	PORTAL = 3,
1836 	/**
1837 	 * The host is connected to a network, and
1838 	 * appears to be able to reach the full Internet.
1839 	 */
1840 	FULL = 4,
1841 }
1842 alias GNetworkConnectivity NetworkConnectivity;
1843 
1844 /**
1845  * Priority levels for #GNotifications.
1846  *
1847  * Since: 2.42
1848  */
1849 public enum GNotificationPriority
1850 {
1851 	/**
1852 	 * the default priority, to be used for the
1853 	 * majority of notifications (for example email messages, software updates,
1854 	 * completed download/sync operations)
1855 	 */
1856 	NORMAL = 0,
1857 	/**
1858 	 * for notifications that do not require
1859 	 * immediate attention - typically used for contextual background
1860 	 * information, such as contact birthdays or local weather
1861 	 */
1862 	LOW = 1,
1863 	/**
1864 	 * for events that require more attention,
1865 	 * usually because responses are time-sensitive (for example chat and SMS
1866 	 * messages or alarms)
1867 	 */
1868 	HIGH = 2,
1869 	/**
1870 	 * for urgent notifications, or notifications
1871 	 * that require a response in a short space of time (for example phone calls
1872 	 * or emergency warnings)
1873 	 */
1874 	URGENT = 3,
1875 }
1876 alias GNotificationPriority NotificationPriority;
1877 
1878 /**
1879  * GOutputStreamSpliceFlags determine how streams should be spliced.
1880  */
1881 public enum GOutputStreamSpliceFlags
1882 {
1883 	/**
1884 	 * Do not close either stream.
1885 	 */
1886 	NONE = 0,
1887 	/**
1888 	 * Close the source stream after
1889 	 * the splice.
1890 	 */
1891 	CLOSE_SOURCE = 1,
1892 	/**
1893 	 * Close the target stream after
1894 	 * the splice.
1895 	 */
1896 	CLOSE_TARGET = 2,
1897 }
1898 alias GOutputStreamSpliceFlags OutputStreamSpliceFlags;
1899 
1900 /**
1901  * #GPasswordSave is used to indicate the lifespan of a saved password.
1902  *
1903  * #Gvfs stores passwords in the Gnome keyring when this flag allows it
1904  * to, and later retrieves it again from there.
1905  */
1906 public enum GPasswordSave
1907 {
1908 	/**
1909 	 * never save a password.
1910 	 */
1911 	NEVER = 0,
1912 	/**
1913 	 * save a password for the session.
1914 	 */
1915 	FOR_SESSION = 1,
1916 	/**
1917 	 * save a password permanently.
1918 	 */
1919 	PERMANENTLY = 2,
1920 }
1921 alias GPasswordSave PasswordSave;
1922 
1923 /**
1924  * Return value for various IO operations that signal errors via the
1925  * return value and not necessarily via a #GError.
1926  *
1927  * This enum exists to be able to return errors to callers without having to
1928  * allocate a #GError. Allocating #GErrors can be quite expensive for
1929  * regularly happening errors like %G_IO_ERROR_WOULD_BLOCK.
1930  *
1931  * In case of %G_POLLABLE_RETURN_FAILED a #GError should be set for the
1932  * operation to give details about the error that happened.
1933  *
1934  * Since: 2.60
1935  */
1936 public enum GPollableReturn
1937 {
1938 	/**
1939 	 * Generic error condition for when an operation fails.
1940 	 */
1941 	FAILED = 0,
1942 	/**
1943 	 * The operation was successfully finished.
1944 	 */
1945 	OK = 1,
1946 	/**
1947 	 * The operation would block.
1948 	 */
1949 	WOULD_BLOCK = -27,
1950 }
1951 alias GPollableReturn PollableReturn;
1952 
1953 /**
1954  * An error code used with %G_RESOLVER_ERROR in a #GError returned
1955  * from a #GResolver routine.
1956  *
1957  * Since: 2.22
1958  */
1959 public enum GResolverError
1960 {
1961 	/**
1962 	 * the requested name/address/service was not
1963 	 * found
1964 	 */
1965 	NOT_FOUND = 0,
1966 	/**
1967 	 * the requested information could not
1968 	 * be looked up due to a network error or similar problem
1969 	 */
1970 	TEMPORARY_FAILURE = 1,
1971 	/**
1972 	 * unknown error
1973 	 */
1974 	INTERNAL = 2,
1975 }
1976 alias GResolverError ResolverError;
1977 
1978 /**
1979  * Flags to modify lookup behavior.
1980  *
1981  * Since: 2.60
1982  */
1983 public enum GResolverNameLookupFlags
1984 {
1985 	/**
1986 	 * default behavior (same as g_resolver_lookup_by_name())
1987 	 */
1988 	DEFAULT = 0,
1989 	/**
1990 	 * only resolve ipv4 addresses
1991 	 */
1992 	IPV4_ONLY = 1,
1993 	/**
1994 	 * only resolve ipv6 addresses
1995 	 */
1996 	IPV6_ONLY = 2,
1997 }
1998 alias GResolverNameLookupFlags ResolverNameLookupFlags;
1999 
2000 /**
2001  * The type of record that g_resolver_lookup_records() or
2002  * g_resolver_lookup_records_async() should retrieve. The records are returned
2003  * as lists of #GVariant tuples. Each record type has different values in
2004  * the variant tuples returned.
2005  *
2006  * %G_RESOLVER_RECORD_SRV records are returned as variants with the signature
2007  * `(qqqs)`, containing a `guint16` with the priority, a `guint16` with the
2008  * weight, a `guint16` with the port, and a string of the hostname.
2009  *
2010  * %G_RESOLVER_RECORD_MX records are returned as variants with the signature
2011  * `(qs)`, representing a `guint16` with the preference, and a string containing
2012  * the mail exchanger hostname.
2013  *
2014  * %G_RESOLVER_RECORD_TXT records are returned as variants with the signature
2015  * `(as)`, representing an array of the strings in the text record. Note: Most TXT
2016  * records only contain a single string, but
2017  * [RFC 1035](https://tools.ietf.org/html/rfc1035#section-3.3.14) does allow a
2018  * record to contain multiple strings. The RFC which defines the interpretation
2019  * of a specific TXT record will likely require concatenation of multiple
2020  * strings if they are present, as with
2021  * [RFC 7208](https://tools.ietf.org/html/rfc7208#section-3.3).
2022  *
2023  * %G_RESOLVER_RECORD_SOA records are returned as variants with the signature
2024  * `(ssuuuuu)`, representing a string containing the primary name server, a
2025  * string containing the administrator, the serial as a `guint32`, the refresh
2026  * interval as a `guint32`, the retry interval as a `guint32`, the expire timeout
2027  * as a `guint32`, and the TTL as a `guint32`.
2028  *
2029  * %G_RESOLVER_RECORD_NS records are returned as variants with the signature
2030  * `(s)`, representing a string of the hostname of the name server.
2031  *
2032  * Since: 2.34
2033  */
2034 public enum GResolverRecordType
2035 {
2036 	/**
2037 	 * look up DNS SRV records for a domain
2038 	 */
2039 	SRV = 1,
2040 	/**
2041 	 * look up DNS MX records for a domain
2042 	 */
2043 	MX = 2,
2044 	/**
2045 	 * look up DNS TXT records for a name
2046 	 */
2047 	TXT = 3,
2048 	/**
2049 	 * look up DNS SOA records for a zone
2050 	 */
2051 	SOA = 4,
2052 	/**
2053 	 * look up DNS NS records for a domain
2054 	 */
2055 	NS = 5,
2056 }
2057 alias GResolverRecordType ResolverRecordType;
2058 
2059 /**
2060  * An error code used with %G_RESOURCE_ERROR in a #GError returned
2061  * from a #GResource routine.
2062  *
2063  * Since: 2.32
2064  */
2065 public enum GResourceError
2066 {
2067 	/**
2068 	 * no file was found at the requested path
2069 	 */
2070 	NOT_FOUND = 0,
2071 	/**
2072 	 * unknown error
2073 	 */
2074 	INTERNAL = 1,
2075 }
2076 alias GResourceError ResourceError;
2077 
2078 /**
2079  * GResourceFlags give information about a particular file inside a resource
2080  * bundle.
2081  *
2082  * Since: 2.32
2083  */
2084 public enum GResourceFlags
2085 {
2086 	/**
2087 	 * No flags set.
2088 	 */
2089 	NONE = 0,
2090 	/**
2091 	 * The file is compressed.
2092 	 */
2093 	COMPRESSED = 1,
2094 }
2095 alias GResourceFlags ResourceFlags;
2096 
2097 /**
2098  * GResourceLookupFlags determine how resource path lookups are handled.
2099  *
2100  * Since: 2.32
2101  */
2102 public enum GResourceLookupFlags
2103 {
2104 	/**
2105 	 * No flags set.
2106 	 */
2107 	NONE = 0,
2108 }
2109 alias GResourceLookupFlags ResourceLookupFlags;
2110 
2111 /**
2112  * Flags used when creating a binding. These flags determine in which
2113  * direction the binding works. The default is to synchronize in both
2114  * directions.
2115  */
2116 public enum GSettingsBindFlags
2117 {
2118 	/**
2119 	 * Equivalent to `G_SETTINGS_BIND_GET|G_SETTINGS_BIND_SET`
2120 	 */
2121 	DEFAULT = 0,
2122 	/**
2123 	 * Update the #GObject property when the setting changes.
2124 	 * It is an error to use this flag if the property is not writable.
2125 	 */
2126 	GET = 1,
2127 	/**
2128 	 * Update the setting when the #GObject property changes.
2129 	 * It is an error to use this flag if the property is not readable.
2130 	 */
2131 	SET = 2,
2132 	/**
2133 	 * Do not try to bind a "sensitivity" property to the writability of the setting
2134 	 */
2135 	NO_SENSITIVITY = 4,
2136 	/**
2137 	 * When set in addition to %G_SETTINGS_BIND_GET, set the #GObject property
2138 	 * value initially from the setting, but do not listen for changes of the setting
2139 	 */
2140 	GET_NO_CHANGES = 8,
2141 	/**
2142 	 * When passed to g_settings_bind(), uses a pair of mapping functions that invert
2143 	 * the boolean value when mapping between the setting and the property.  The setting and property must both
2144 	 * be booleans.  You cannot pass this flag to g_settings_bind_with_mapping().
2145 	 */
2146 	INVERT_BOOLEAN = 16,
2147 }
2148 alias GSettingsBindFlags SettingsBindFlags;
2149 
2150 /**
2151  * Describes an event occurring on a #GSocketClient. See the
2152  * #GSocketClient::event signal for more details.
2153  *
2154  * Additional values may be added to this type in the future.
2155  *
2156  * Since: 2.32
2157  */
2158 public enum GSocketClientEvent
2159 {
2160 	/**
2161 	 * The client is doing a DNS lookup.
2162 	 */
2163 	RESOLVING = 0,
2164 	/**
2165 	 * The client has completed a DNS lookup.
2166 	 */
2167 	RESOLVED = 1,
2168 	/**
2169 	 * The client is connecting to a remote
2170 	 * host (either a proxy or the destination server).
2171 	 */
2172 	CONNECTING = 2,
2173 	/**
2174 	 * The client has connected to a remote
2175 	 * host.
2176 	 */
2177 	CONNECTED = 3,
2178 	/**
2179 	 * The client is negotiating
2180 	 * with a proxy to connect to the destination server.
2181 	 */
2182 	PROXY_NEGOTIATING = 4,
2183 	/**
2184 	 * The client has negotiated
2185 	 * with the proxy server.
2186 	 */
2187 	PROXY_NEGOTIATED = 5,
2188 	/**
2189 	 * The client is performing a
2190 	 * TLS handshake.
2191 	 */
2192 	TLS_HANDSHAKING = 6,
2193 	/**
2194 	 * The client has performed a
2195 	 * TLS handshake.
2196 	 */
2197 	TLS_HANDSHAKED = 7,
2198 	/**
2199 	 * The client is done with a particular
2200 	 * #GSocketConnectable.
2201 	 */
2202 	COMPLETE = 8,
2203 }
2204 alias GSocketClientEvent SocketClientEvent;
2205 
2206 /**
2207  * The protocol family of a #GSocketAddress. (These values are
2208  * identical to the system defines %AF_INET, %AF_INET6 and %AF_UNIX,
2209  * if available.)
2210  *
2211  * Since: 2.22
2212  */
2213 public enum GSocketFamily
2214 {
2215 	/**
2216 	 * no address family
2217 	 */
2218 	INVALID = 0,
2219 	/**
2220 	 * the UNIX domain family
2221 	 */
2222 	UNIX = 1,
2223 	/**
2224 	 * the IPv4 family
2225 	 */
2226 	IPV4 = 2,
2227 	/**
2228 	 * the IPv6 family
2229 	 */
2230 	IPV6 = 10,
2231 }
2232 alias GSocketFamily SocketFamily;
2233 
2234 /**
2235  * Describes an event occurring on a #GSocketListener. See the
2236  * #GSocketListener::event signal for more details.
2237  *
2238  * Additional values may be added to this type in the future.
2239  *
2240  * Since: 2.46
2241  */
2242 public enum GSocketListenerEvent
2243 {
2244 	/**
2245 	 * The listener is about to bind a socket.
2246 	 */
2247 	BINDING = 0,
2248 	/**
2249 	 * The listener has bound a socket.
2250 	 */
2251 	BOUND = 1,
2252 	/**
2253 	 * The listener is about to start
2254 	 * listening on this socket.
2255 	 */
2256 	LISTENING = 2,
2257 	/**
2258 	 * The listener is now listening on
2259 	 * this socket.
2260 	 */
2261 	LISTENED = 3,
2262 }
2263 alias GSocketListenerEvent SocketListenerEvent;
2264 
2265 /**
2266  * Flags used in g_socket_receive_message() and g_socket_send_message().
2267  * The flags listed in the enum are some commonly available flags, but the
2268  * values used for them are the same as on the platform, and any other flags
2269  * are passed in/out as is. So to use a platform specific flag, just include
2270  * the right system header and pass in the flag.
2271  *
2272  * Since: 2.22
2273  */
2274 public enum GSocketMsgFlags
2275 {
2276 	/**
2277 	 * No flags.
2278 	 */
2279 	NONE = 0,
2280 	/**
2281 	 * Request to send/receive out of band data.
2282 	 */
2283 	OOB = 1,
2284 	/**
2285 	 * Read data from the socket without removing it from
2286 	 * the queue.
2287 	 */
2288 	PEEK = 2,
2289 	/**
2290 	 * Don't use a gateway to send out the packet,
2291 	 * only send to hosts on directly connected networks.
2292 	 */
2293 	DONTROUTE = 4,
2294 }
2295 alias GSocketMsgFlags SocketMsgFlags;
2296 
2297 /**
2298  * A protocol identifier is specified when creating a #GSocket, which is a
2299  * family/type specific identifier, where 0 means the default protocol for
2300  * the particular family/type.
2301  *
2302  * This enum contains a set of commonly available and used protocols. You
2303  * can also pass any other identifiers handled by the platform in order to
2304  * use protocols not listed here.
2305  *
2306  * Since: 2.22
2307  */
2308 public enum GSocketProtocol
2309 {
2310 	/**
2311 	 * The protocol type is unknown
2312 	 */
2313 	UNKNOWN = -1,
2314 	/**
2315 	 * The default protocol for the family/type
2316 	 */
2317 	DEFAULT = 0,
2318 	/**
2319 	 * TCP over IP
2320 	 */
2321 	TCP = 6,
2322 	/**
2323 	 * UDP over IP
2324 	 */
2325 	UDP = 17,
2326 	/**
2327 	 * SCTP over IP
2328 	 */
2329 	SCTP = 132,
2330 }
2331 alias GSocketProtocol SocketProtocol;
2332 
2333 /**
2334  * Flags used when creating a #GSocket. Some protocols may not implement
2335  * all the socket types.
2336  *
2337  * Since: 2.22
2338  */
2339 public enum GSocketType
2340 {
2341 	/**
2342 	 * Type unknown or wrong
2343 	 */
2344 	INVALID = 0,
2345 	/**
2346 	 * Reliable connection-based byte streams (e.g. TCP).
2347 	 */
2348 	STREAM = 1,
2349 	/**
2350 	 * Connectionless, unreliable datagram passing.
2351 	 * (e.g. UDP)
2352 	 */
2353 	DATAGRAM = 2,
2354 	/**
2355 	 * Reliable connection-based passing of datagrams
2356 	 * of fixed maximum length (e.g. SCTP).
2357 	 */
2358 	SEQPACKET = 3,
2359 }
2360 alias GSocketType SocketType;
2361 
2362 /**
2363  * Flags to define the behaviour of a #GSubprocess.
2364  *
2365  * Note that the default for stdin is to redirect from `/dev/null`.  For
2366  * stdout and stderr the default are for them to inherit the
2367  * corresponding descriptor from the calling process.
2368  *
2369  * Note that it is a programmer error to mix 'incompatible' flags.  For
2370  * example, you may not request both %G_SUBPROCESS_FLAGS_STDOUT_PIPE and
2371  * %G_SUBPROCESS_FLAGS_STDOUT_SILENCE.
2372  *
2373  * Since: 2.40
2374  */
2375 public enum GSubprocessFlags
2376 {
2377 	/**
2378 	 * No flags.
2379 	 */
2380 	NONE = 0,
2381 	/**
2382 	 * create a pipe for the stdin of the
2383 	 * spawned process that can be accessed with
2384 	 * g_subprocess_get_stdin_pipe().
2385 	 */
2386 	STDIN_PIPE = 1,
2387 	/**
2388 	 * stdin is inherited from the
2389 	 * calling process.
2390 	 */
2391 	STDIN_INHERIT = 2,
2392 	/**
2393 	 * create a pipe for the stdout of the
2394 	 * spawned process that can be accessed with
2395 	 * g_subprocess_get_stdout_pipe().
2396 	 */
2397 	STDOUT_PIPE = 4,
2398 	/**
2399 	 * silence the stdout of the spawned
2400 	 * process (ie: redirect to `/dev/null`).
2401 	 */
2402 	STDOUT_SILENCE = 8,
2403 	/**
2404 	 * create a pipe for the stderr of the
2405 	 * spawned process that can be accessed with
2406 	 * g_subprocess_get_stderr_pipe().
2407 	 */
2408 	STDERR_PIPE = 16,
2409 	/**
2410 	 * silence the stderr of the spawned
2411 	 * process (ie: redirect to `/dev/null`).
2412 	 */
2413 	STDERR_SILENCE = 32,
2414 	/**
2415 	 * merge the stderr of the spawned
2416 	 * process with whatever the stdout happens to be.  This is a good way
2417 	 * of directing both streams to a common log file, for example.
2418 	 */
2419 	STDERR_MERGE = 64,
2420 	/**
2421 	 * spawned processes will inherit the
2422 	 * file descriptors of their parent, unless those descriptors have
2423 	 * been explicitly marked as close-on-exec.  This flag has no effect
2424 	 * over the "standard" file descriptors (stdin, stdout, stderr).
2425 	 */
2426 	INHERIT_FDS = 128,
2427 	/**
2428 	 * if path searching is
2429 	 * needed when spawning the subprocess, use the `PATH` in the launcher
2430 	 * environment. (Since: 2.72)
2431 	 */
2432 	SEARCH_PATH_FROM_ENVP = 256,
2433 }
2434 alias GSubprocessFlags SubprocessFlags;
2435 
2436 /**
2437  * Flags to define future #GTestDBus behaviour.
2438  *
2439  * Since: 2.34
2440  */
2441 public enum GTestDBusFlags
2442 {
2443 	/**
2444 	 * No flags.
2445 	 */
2446 	NONE = 0,
2447 }
2448 alias GTestDBusFlags TestDBusFlags;
2449 
2450 /**
2451  * The client authentication mode for a #GTlsServerConnection.
2452  *
2453  * Since: 2.28
2454  */
2455 public enum GTlsAuthenticationMode
2456 {
2457 	/**
2458 	 * client authentication not required
2459 	 */
2460 	NONE = 0,
2461 	/**
2462 	 * client authentication is requested
2463 	 */
2464 	REQUESTED = 1,
2465 	/**
2466 	 * client authentication is required
2467 	 */
2468 	REQUIRED = 2,
2469 }
2470 alias GTlsAuthenticationMode TlsAuthenticationMode;
2471 
2472 /**
2473  * A set of flags describing TLS certification validation. This can be
2474  * used to describe why a particular certificate was rejected (for
2475  * example, in #GTlsConnection::accept-certificate).
2476  *
2477  * GLib guarantees that if certificate verification fails, at least one
2478  * flag will be set, but it does not guarantee that all possible flags
2479  * will be set. Accordingly, you may not safely decide to ignore any
2480  * particular type of error. For example, it would be incorrect to mask
2481  * %G_TLS_CERTIFICATE_EXPIRED if you want to allow expired certificates,
2482  * because this could potentially be the only error flag set even if
2483  * other problems exist with the certificate.
2484  *
2485  * Since: 2.28
2486  */
2487 public enum GTlsCertificateFlags
2488 {
2489 	/**
2490 	 * The signing certificate authority is
2491 	 * not known.
2492 	 */
2493 	UNKNOWN_CA = 1,
2494 	/**
2495 	 * The certificate does not match the
2496 	 * expected identity of the site that it was retrieved from.
2497 	 */
2498 	BAD_IDENTITY = 2,
2499 	/**
2500 	 * The certificate's activation time
2501 	 * is still in the future
2502 	 */
2503 	NOT_ACTIVATED = 4,
2504 	/**
2505 	 * The certificate has expired
2506 	 */
2507 	EXPIRED = 8,
2508 	/**
2509 	 * The certificate has been revoked
2510 	 * according to the #GTlsConnection's certificate revocation list.
2511 	 */
2512 	REVOKED = 16,
2513 	/**
2514 	 * The certificate's algorithm is
2515 	 * considered insecure.
2516 	 */
2517 	INSECURE = 32,
2518 	/**
2519 	 * Some other error occurred validating
2520 	 * the certificate
2521 	 */
2522 	GENERIC_ERROR = 64,
2523 	/**
2524 	 * the combination of all of the above
2525 	 * flags
2526 	 */
2527 	VALIDATE_ALL = 127,
2528 }
2529 alias GTlsCertificateFlags TlsCertificateFlags;
2530 
2531 /**
2532  * Flags for g_tls_interaction_request_certificate(),
2533  * g_tls_interaction_request_certificate_async(), and
2534  * g_tls_interaction_invoke_request_certificate().
2535  *
2536  * Since: 2.40
2537  */
2538 public enum GTlsCertificateRequestFlags
2539 {
2540 	/**
2541 	 * No flags
2542 	 */
2543 	NONE = 0,
2544 }
2545 alias GTlsCertificateRequestFlags TlsCertificateRequestFlags;
2546 
2547 /**
2548  * An error code used with %G_TLS_CHANNEL_BINDING_ERROR in a #GError to
2549  * indicate a TLS channel binding retrieval error.
2550  *
2551  * Since: 2.66
2552  */
2553 public enum GTlsChannelBindingError
2554 {
2555 	/**
2556 	 * Either entire binding
2557 	 * retrieval facility or specific binding type is not implemented in the
2558 	 * TLS backend.
2559 	 */
2560 	NOT_IMPLEMENTED = 0,
2561 	/**
2562 	 * The handshake is not yet
2563 	 * complete on the connection which is a strong requirement for any existing
2564 	 * binding type.
2565 	 */
2566 	INVALID_STATE = 1,
2567 	/**
2568 	 * Handshake is complete but
2569 	 * binding data is not available. That normally indicates the TLS
2570 	 * implementation failed to provide the binding data. For example, some
2571 	 * implementations do not provide a peer certificate for resumed connections.
2572 	 */
2573 	NOT_AVAILABLE = 2,
2574 	/**
2575 	 * Binding type is not supported
2576 	 * on the current connection. This error could be triggered when requesting
2577 	 * `tls-server-end-point` binding data for a certificate which has no hash
2578 	 * function or uses multiple hash functions.
2579 	 */
2580 	NOT_SUPPORTED = 3,
2581 	/**
2582 	 * Any other backend error
2583 	 * preventing binding data retrieval.
2584 	 */
2585 	GENERAL_ERROR = 4,
2586 }
2587 alias GTlsChannelBindingError TlsChannelBindingError;
2588 
2589 /**
2590  * The type of TLS channel binding data to retrieve from #GTlsConnection
2591  * or #GDtlsConnection, as documented by RFC 5929. The
2592  * [`tls-unique-for-telnet`](https://tools.ietf.org/html/rfc5929#section-5)
2593  * binding type is not currently implemented.
2594  *
2595  * Since: 2.66
2596  */
2597 public enum GTlsChannelBindingType
2598 {
2599 	/**
2600 	 * [`tls-unique`](https://tools.ietf.org/html/rfc5929#section-3) binding
2601 	 * type
2602 	 */
2603 	UNIQUE = 0,
2604 	/**
2605 	 * [`tls-server-end-point`](https://tools.ietf.org/html/rfc5929#section-4)
2606 	 * binding type
2607 	 */
2608 	SERVER_END_POINT = 1,
2609 }
2610 alias GTlsChannelBindingType TlsChannelBindingType;
2611 
2612 /**
2613  * Flags for g_tls_database_lookup_certificate_for_handle(),
2614  * g_tls_database_lookup_certificate_issuer(),
2615  * and g_tls_database_lookup_certificates_issued_by().
2616  *
2617  * Since: 2.30
2618  */
2619 public enum GTlsDatabaseLookupFlags
2620 {
2621 	/**
2622 	 * No lookup flags
2623 	 */
2624 	NONE = 0,
2625 	/**
2626 	 * Restrict lookup to certificates that have
2627 	 * a private key.
2628 	 */
2629 	KEYPAIR = 1,
2630 }
2631 alias GTlsDatabaseLookupFlags TlsDatabaseLookupFlags;
2632 
2633 /**
2634  * Flags for g_tls_database_verify_chain().
2635  *
2636  * Since: 2.30
2637  */
2638 public enum GTlsDatabaseVerifyFlags
2639 {
2640 	/**
2641 	 * No verification flags
2642 	 */
2643 	NONE = 0,
2644 }
2645 alias GTlsDatabaseVerifyFlags TlsDatabaseVerifyFlags;
2646 
2647 /**
2648  * An error code used with %G_TLS_ERROR in a #GError returned from a
2649  * TLS-related routine.
2650  *
2651  * Since: 2.28
2652  */
2653 public enum GTlsError
2654 {
2655 	/**
2656 	 * No TLS provider is available
2657 	 */
2658 	UNAVAILABLE = 0,
2659 	/**
2660 	 * Miscellaneous TLS error
2661 	 */
2662 	MISC = 1,
2663 	/**
2664 	 * The certificate presented could not
2665 	 * be parsed or failed validation.
2666 	 */
2667 	BAD_CERTIFICATE = 2,
2668 	/**
2669 	 * The TLS handshake failed because the
2670 	 * peer does not seem to be a TLS server.
2671 	 */
2672 	NOT_TLS = 3,
2673 	/**
2674 	 * The TLS handshake failed because the
2675 	 * peer's certificate was not acceptable.
2676 	 */
2677 	HANDSHAKE = 4,
2678 	/**
2679 	 * The TLS handshake failed because
2680 	 * the server requested a client-side certificate, but none was
2681 	 * provided. See g_tls_connection_set_certificate().
2682 	 */
2683 	CERTIFICATE_REQUIRED = 5,
2684 	/**
2685 	 * The TLS connection was closed without proper
2686 	 * notice, which may indicate an attack. See
2687 	 * g_tls_connection_set_require_close_notify().
2688 	 */
2689 	EOF = 6,
2690 	/**
2691 	 * The TLS handshake failed
2692 	 * because the client sent the fallback SCSV, indicating a protocol
2693 	 * downgrade attack. Since: 2.60
2694 	 */
2695 	INAPPROPRIATE_FALLBACK = 7,
2696 	/**
2697 	 * The certificate failed
2698 	 * to load because a password was incorrect. Since: 2.72
2699 	 */
2700 	BAD_CERTIFICATE_PASSWORD = 8,
2701 }
2702 alias GTlsError TlsError;
2703 
2704 /**
2705  * #GTlsInteractionResult is returned by various functions in #GTlsInteraction
2706  * when finishing an interaction request.
2707  *
2708  * Since: 2.30
2709  */
2710 public enum GTlsInteractionResult
2711 {
2712 	/**
2713 	 * The interaction was unhandled (i.e. not
2714 	 * implemented).
2715 	 */
2716 	UNHANDLED = 0,
2717 	/**
2718 	 * The interaction completed, and resulting data
2719 	 * is available.
2720 	 */
2721 	HANDLED = 1,
2722 	/**
2723 	 * The interaction has failed, or was cancelled.
2724 	 * and the operation should be aborted.
2725 	 */
2726 	FAILED = 2,
2727 }
2728 alias GTlsInteractionResult TlsInteractionResult;
2729 
2730 /**
2731  * Various flags for the password.
2732  *
2733  * Since: 2.30
2734  */
2735 public enum GTlsPasswordFlags
2736 {
2737 	/**
2738 	 * No flags
2739 	 */
2740 	NONE = 0,
2741 	/**
2742 	 * The password was wrong, and the user should retry.
2743 	 */
2744 	RETRY = 2,
2745 	/**
2746 	 * Hint to the user that the password has been
2747 	 * wrong many times, and the user may not have many chances left.
2748 	 */
2749 	MANY_TRIES = 4,
2750 	/**
2751 	 * Hint to the user that this is the last try to get
2752 	 * this password right.
2753 	 */
2754 	FINAL_TRY = 8,
2755 	/**
2756 	 * For PKCS #11, the user PIN is required.
2757 	 * Since: 2.70.
2758 	 */
2759 	PKCS11_USER = 16,
2760 	/**
2761 	 * For PKCS #11, the security officer
2762 	 * PIN is required. Since: 2.70.
2763 	 */
2764 	PKCS11_SECURITY_OFFICER = 32,
2765 	/**
2766 	 * For PKCS #11, the context-specific
2767 	 * PIN is required. Since: 2.70.
2768 	 */
2769 	PKCS11_CONTEXT_SPECIFIC = 64,
2770 }
2771 alias GTlsPasswordFlags TlsPasswordFlags;
2772 
2773 /**
2774  * The TLS or DTLS protocol version used by a #GTlsConnection or
2775  * #GDtlsConnection. The integer values of these versions are sequential
2776  * to ensure newer known protocol versions compare greater than older
2777  * known versions. Any known DTLS protocol version will compare greater
2778  * than any SSL or TLS protocol version. The protocol version may be
2779  * %G_TLS_PROTOCOL_VERSION_UNKNOWN if the TLS backend supports a newer
2780  * protocol version that GLib does not yet know about. This means that
2781  * it's possible for an unknown DTLS protocol version to compare less
2782  * than the TLS protocol versions.
2783  *
2784  * Since: 2.70
2785  */
2786 public enum GTlsProtocolVersion
2787 {
2788 	/**
2789 	 * No protocol version or unknown protocol version
2790 	 */
2791 	UNKNOWN = 0,
2792 	/**
2793 	 * SSL 3.0, which is insecure and should not be used
2794 	 */
2795 	SSL_3_0 = 1,
2796 	/**
2797 	 * TLS 1.0, which is insecure and should not be used
2798 	 */
2799 	TLS_1_0 = 2,
2800 	/**
2801 	 * TLS 1.1, which is insecure and should not be used
2802 	 */
2803 	TLS_1_1 = 3,
2804 	/**
2805 	 * TLS 1.2, defined by [RFC 5246](https://datatracker.ietf.org/doc/html/rfc5246)
2806 	 */
2807 	TLS_1_2 = 4,
2808 	/**
2809 	 * TLS 1.3, defined by [RFC 8446](https://datatracker.ietf.org/doc/html/rfc8446)
2810 	 */
2811 	TLS_1_3 = 5,
2812 	/**
2813 	 * DTLS 1.0, which is insecure and should not be used
2814 	 */
2815 	DTLS_1_0 = 201,
2816 	/**
2817 	 * DTLS 1.2, defined by [RFC 6347](https://datatracker.ietf.org/doc/html/rfc6347)
2818 	 */
2819 	DTLS_1_2 = 202,
2820 }
2821 alias GTlsProtocolVersion TlsProtocolVersion;
2822 
2823 /**
2824  * When to allow rehandshaking. See
2825  * g_tls_connection_set_rehandshake_mode().
2826  *
2827  * Deprecated: Changing the rehandshake mode is no longer
2828  * required for compatibility. Also, rehandshaking has been removed
2829  * from the TLS protocol in TLS 1.3.
2830  *
2831  * Since: 2.28
2832  */
2833 public enum GTlsRehandshakeMode
2834 {
2835 	/**
2836 	 * Never allow rehandshaking
2837 	 */
2838 	NEVER = 0,
2839 	/**
2840 	 * Allow safe rehandshaking only
2841 	 */
2842 	SAFELY = 1,
2843 	/**
2844 	 * Allow unsafe rehandshaking
2845 	 */
2846 	UNSAFELY = 2,
2847 }
2848 alias GTlsRehandshakeMode TlsRehandshakeMode;
2849 
2850 /**
2851  * The type of name used by a #GUnixSocketAddress.
2852  * %G_UNIX_SOCKET_ADDRESS_PATH indicates a traditional unix domain
2853  * socket bound to a filesystem path. %G_UNIX_SOCKET_ADDRESS_ANONYMOUS
2854  * indicates a socket not bound to any name (eg, a client-side socket,
2855  * or a socket created with socketpair()).
2856  *
2857  * For abstract sockets, there are two incompatible ways of naming
2858  * them; the man pages suggest using the entire `struct sockaddr_un`
2859  * as the name, padding the unused parts of the %sun_path field with
2860  * zeroes; this corresponds to %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED.
2861  * However, many programs instead just use a portion of %sun_path, and
2862  * pass an appropriate smaller length to bind() or connect(). This is
2863  * %G_UNIX_SOCKET_ADDRESS_ABSTRACT.
2864  *
2865  * Since: 2.26
2866  */
2867 public enum GUnixSocketAddressType
2868 {
2869 	/**
2870 	 * invalid
2871 	 */
2872 	INVALID = 0,
2873 	/**
2874 	 * anonymous
2875 	 */
2876 	ANONYMOUS = 1,
2877 	/**
2878 	 * a filesystem path
2879 	 */
2880 	PATH = 2,
2881 	/**
2882 	 * an abstract name
2883 	 */
2884 	ABSTRACT = 3,
2885 	/**
2886 	 * an abstract name, 0-padded
2887 	 * to the full length of a unix socket name
2888 	 */
2889 	ABSTRACT_PADDED = 4,
2890 }
2891 alias GUnixSocketAddressType UnixSocketAddressType;
2892 
2893 /**
2894  * Used to select the type of data format to use for #GZlibDecompressor
2895  * and #GZlibCompressor.
2896  *
2897  * Since: 2.24
2898  */
2899 public enum GZlibCompressorFormat
2900 {
2901 	/**
2902 	 * deflate compression with zlib header
2903 	 */
2904 	ZLIB = 0,
2905 	/**
2906 	 * gzip file format
2907 	 */
2908 	GZIP = 1,
2909 	/**
2910 	 * deflate compression with no header
2911 	 */
2912 	RAW = 2,
2913 }
2914 alias GZlibCompressorFormat ZlibCompressorFormat;
2915 
2916 struct GAction;
2917 
2918 /**
2919  * This struct defines a single action.  It is for use with
2920  * g_action_map_add_action_entries().
2921  *
2922  * The order of the items in the structure are intended to reflect
2923  * frequency of use.  It is permissible to use an incomplete initialiser
2924  * in order to leave some of the later values as %NULL.  All values
2925  * after @name are optional.  Additional optional fields may be added in
2926  * the future.
2927  *
2928  * See g_action_map_add_action_entries() for an example.
2929  */
2930 struct GActionEntry
2931 {
2932 	/**
2933 	 * the name of the action
2934 	 */
2935 	const(char)* name;
2936 	/** */
2937 	extern(C) void function(GSimpleAction* action, GVariant* parameter, void* userData) activate;
2938 	/**
2939 	 * the type of the parameter that must be passed to the
2940 	 * activate function for this action, given as a single
2941 	 * GVariant type string (or %NULL for no parameter)
2942 	 */
2943 	const(char)* parameterType;
2944 	/**
2945 	 * the initial state for this action, given in
2946 	 * [GVariant text format][gvariant-text].  The state is parsed
2947 	 * with no extra type information, so type tags must be added to
2948 	 * the string if they are necessary.  Stateless actions should
2949 	 * give %NULL here.
2950 	 */
2951 	const(char)* state;
2952 	/** */
2953 	extern(C) void function(GSimpleAction* action, GVariant* value, void* userData) changeState;
2954 	size_t[3] padding;
2955 }
2956 
2957 struct GActionGroup;
2958 
2959 /**
2960  * The virtual function table for #GActionGroup.
2961  *
2962  * Since: 2.28
2963  */
2964 struct GActionGroupInterface
2965 {
2966 	GTypeInterface gIface;
2967 	/**
2968 	 *
2969 	 * Params:
2970 	 *     actionGroup = a #GActionGroup
2971 	 *     actionName = the name of the action to check for
2972 	 * Returns: whether the named action exists
2973 	 */
2974 	extern(C) int function(GActionGroup* actionGroup, const(char)* actionName) hasAction;
2975 	/**
2976 	 *
2977 	 * Params:
2978 	 *     actionGroup = a #GActionGroup
2979 	 * Returns: a %NULL-terminated array of the names of the
2980 	 *     actions in the group
2981 	 */
2982 	extern(C) char** function(GActionGroup* actionGroup) listActions;
2983 	/**
2984 	 *
2985 	 * Params:
2986 	 *     actionGroup = a #GActionGroup
2987 	 *     actionName = the name of the action to query
2988 	 * Returns: whether or not the action is currently enabled
2989 	 */
2990 	extern(C) int function(GActionGroup* actionGroup, const(char)* actionName) getActionEnabled;
2991 	/**
2992 	 *
2993 	 * Params:
2994 	 *     actionGroup = a #GActionGroup
2995 	 *     actionName = the name of the action to query
2996 	 * Returns: the parameter type
2997 	 */
2998 	extern(C) GVariantType* function(GActionGroup* actionGroup, const(char)* actionName) getActionParameterType;
2999 	/**
3000 	 *
3001 	 * Params:
3002 	 *     actionGroup = a #GActionGroup
3003 	 *     actionName = the name of the action to query
3004 	 * Returns: the state type, if the action is stateful
3005 	 */
3006 	extern(C) GVariantType* function(GActionGroup* actionGroup, const(char)* actionName) getActionStateType;
3007 	/**
3008 	 *
3009 	 * Params:
3010 	 *     actionGroup = a #GActionGroup
3011 	 *     actionName = the name of the action to query
3012 	 * Returns: the state range hint
3013 	 */
3014 	extern(C) GVariant* function(GActionGroup* actionGroup, const(char)* actionName) getActionStateHint;
3015 	/**
3016 	 *
3017 	 * Params:
3018 	 *     actionGroup = a #GActionGroup
3019 	 *     actionName = the name of the action to query
3020 	 * Returns: the current state of the action
3021 	 */
3022 	extern(C) GVariant* function(GActionGroup* actionGroup, const(char)* actionName) getActionState;
3023 	/** */
3024 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, GVariant* value) changeActionState;
3025 	/** */
3026 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, GVariant* parameter) activateAction;
3027 	/** */
3028 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName) actionAdded;
3029 	/** */
3030 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName) actionRemoved;
3031 	/** */
3032 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, int enabled) actionEnabledChanged;
3033 	/** */
3034 	extern(C) void function(GActionGroup* actionGroup, const(char)* actionName, GVariant* state) actionStateChanged;
3035 	/**
3036 	 *
3037 	 * Params:
3038 	 *     actionGroup = a #GActionGroup
3039 	 *     actionName = the name of an action in the group
3040 	 *     enabled = if the action is presently enabled
3041 	 *     parameterType = the parameter type, or %NULL if none needed
3042 	 *     stateType = the state type, or %NULL if stateless
3043 	 *     stateHint = the state hint, or %NULL if none
3044 	 *     state = the current state, or %NULL if stateless
3045 	 * Returns: %TRUE if the action exists, else %FALSE
3046 	 */
3047 	extern(C) int function(GActionGroup* actionGroup, const(char)* actionName, int* enabled, GVariantType** parameterType, GVariantType** stateType, GVariant** stateHint, GVariant** state) queryAction;
3048 }
3049 
3050 /**
3051  * The virtual function table for #GAction.
3052  *
3053  * Since: 2.28
3054  */
3055 struct GActionInterface
3056 {
3057 	GTypeInterface gIface;
3058 	/**
3059 	 *
3060 	 * Params:
3061 	 *     action = a #GAction
3062 	 * Returns: the name of the action
3063 	 */
3064 	extern(C) const(char)* function(GAction* action) getName;
3065 	/**
3066 	 *
3067 	 * Params:
3068 	 *     action = a #GAction
3069 	 * Returns: the parameter type
3070 	 */
3071 	extern(C) GVariantType* function(GAction* action) getParameterType;
3072 	/**
3073 	 *
3074 	 * Params:
3075 	 *     action = a #GAction
3076 	 * Returns: the state type, if the action is stateful
3077 	 */
3078 	extern(C) GVariantType* function(GAction* action) getStateType;
3079 	/**
3080 	 *
3081 	 * Params:
3082 	 *     action = a #GAction
3083 	 * Returns: the state range hint
3084 	 */
3085 	extern(C) GVariant* function(GAction* action) getStateHint;
3086 	/**
3087 	 *
3088 	 * Params:
3089 	 *     action = a #GAction
3090 	 * Returns: whether the action is enabled
3091 	 */
3092 	extern(C) int function(GAction* action) getEnabled;
3093 	/**
3094 	 *
3095 	 * Params:
3096 	 *     action = a #GAction
3097 	 * Returns: the current state of the action
3098 	 */
3099 	extern(C) GVariant* function(GAction* action) getState;
3100 	/** */
3101 	extern(C) void function(GAction* action, GVariant* value) changeState;
3102 	/** */
3103 	extern(C) void function(GAction* action, GVariant* parameter) activate;
3104 }
3105 
3106 struct GActionMap;
3107 
3108 /**
3109  * The virtual function table for #GActionMap.
3110  *
3111  * Since: 2.32
3112  */
3113 struct GActionMapInterface
3114 {
3115 	GTypeInterface gIface;
3116 	/**
3117 	 *
3118 	 * Params:
3119 	 *     actionMap = a #GActionMap
3120 	 *     actionName = the name of an action
3121 	 * Returns: a #GAction, or %NULL
3122 	 */
3123 	extern(C) GAction* function(GActionMap* actionMap, const(char)* actionName) lookupAction;
3124 	/** */
3125 	extern(C) void function(GActionMap* actionMap, GAction* action) addAction;
3126 	/** */
3127 	extern(C) void function(GActionMap* actionMap, const(char)* actionName) removeAction;
3128 }
3129 
3130 struct GAppInfo;
3131 
3132 /**
3133  * Application Information interface, for operating system portability.
3134  */
3135 struct GAppInfoIface
3136 {
3137 	/**
3138 	 * The parent interface.
3139 	 */
3140 	GTypeInterface gIface;
3141 	/**
3142 	 *
3143 	 * Params:
3144 	 *     appinfo = a #GAppInfo.
3145 	 * Returns: a duplicate of @appinfo.
3146 	 */
3147 	extern(C) GAppInfo* function(GAppInfo* appinfo) dup;
3148 	/**
3149 	 *
3150 	 * Params:
3151 	 *     appinfo1 = the first #GAppInfo.
3152 	 *     appinfo2 = the second #GAppInfo.
3153 	 * Returns: %TRUE if @appinfo1 is equal to @appinfo2. %FALSE otherwise.
3154 	 */
3155 	extern(C) int function(GAppInfo* appinfo1, GAppInfo* appinfo2) equal;
3156 	/**
3157 	 *
3158 	 * Params:
3159 	 *     appinfo = a #GAppInfo.
3160 	 * Returns: a string containing the application's ID.
3161 	 */
3162 	extern(C) const(char)* function(GAppInfo* appinfo) getId;
3163 	/**
3164 	 *
3165 	 * Params:
3166 	 *     appinfo = a #GAppInfo.
3167 	 * Returns: the name of the application for @appinfo.
3168 	 */
3169 	extern(C) const(char)* function(GAppInfo* appinfo) getName;
3170 	/**
3171 	 *
3172 	 * Params:
3173 	 *     appinfo = a #GAppInfo.
3174 	 * Returns: a string containing a description of the
3175 	 *     application @appinfo, or %NULL if none.
3176 	 */
3177 	extern(C) const(char)* function(GAppInfo* appinfo) getDescription;
3178 	/**
3179 	 *
3180 	 * Params:
3181 	 *     appinfo = a #GAppInfo
3182 	 * Returns: a string containing the @appinfo's application
3183 	 *     binaries name
3184 	 */
3185 	extern(C) char* function(GAppInfo* appinfo) getExecutable;
3186 	/**
3187 	 *
3188 	 * Params:
3189 	 *     appinfo = a #GAppInfo.
3190 	 * Returns: the default #GIcon for @appinfo or %NULL
3191 	 *     if there is no default icon.
3192 	 */
3193 	extern(C) GIcon* function(GAppInfo* appinfo) getIcon;
3194 	/**
3195 	 *
3196 	 * Params:
3197 	 *     appinfo = a #GAppInfo
3198 	 *     files = a #GList of #GFile objects
3199 	 *     context = a #GAppLaunchContext or %NULL
3200 	 * Returns: %TRUE on successful launch, %FALSE otherwise.
3201 	 *
3202 	 * Throws: GException on failure.
3203 	 */
3204 	extern(C) int function(GAppInfo* appinfo, GList* files, GAppLaunchContext* context, GError** err) launch;
3205 	/**
3206 	 *
3207 	 * Params:
3208 	 *     appinfo = a #GAppInfo.
3209 	 * Returns: %TRUE if the @appinfo supports URIs.
3210 	 */
3211 	extern(C) int function(GAppInfo* appinfo) supportsUris;
3212 	/**
3213 	 *
3214 	 * Params:
3215 	 *     appinfo = a #GAppInfo.
3216 	 * Returns: %TRUE if the @appinfo supports files.
3217 	 */
3218 	extern(C) int function(GAppInfo* appinfo) supportsFiles;
3219 	/**
3220 	 *
3221 	 * Params:
3222 	 *     appinfo = a #GAppInfo
3223 	 *     uris = a #GList containing URIs to launch.
3224 	 *     context = a #GAppLaunchContext or %NULL
3225 	 * Returns: %TRUE on successful launch, %FALSE otherwise.
3226 	 *
3227 	 * Throws: GException on failure.
3228 	 */
3229 	extern(C) int function(GAppInfo* appinfo, GList* uris, GAppLaunchContext* context, GError** err) launchUris;
3230 	/**
3231 	 *
3232 	 * Params:
3233 	 *     appinfo = a #GAppInfo.
3234 	 * Returns: %TRUE if the @appinfo should be shown, %FALSE otherwise.
3235 	 */
3236 	extern(C) int function(GAppInfo* appinfo) shouldShow;
3237 	/**
3238 	 *
3239 	 * Params:
3240 	 *     appinfo = a #GAppInfo.
3241 	 *     contentType = the content type.
3242 	 * Returns: %TRUE on success, %FALSE on error.
3243 	 *
3244 	 * Throws: GException on failure.
3245 	 */
3246 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) setAsDefaultForType;
3247 	/**
3248 	 *
3249 	 * Params:
3250 	 *     appinfo = a #GAppInfo.
3251 	 *     extension = a string containing the file extension
3252 	 *         (without the dot).
3253 	 * Returns: %TRUE on success, %FALSE on error.
3254 	 *
3255 	 * Throws: GException on failure.
3256 	 */
3257 	extern(C) int function(GAppInfo* appinfo, char* extension, GError** err) setAsDefaultForExtension;
3258 	/**
3259 	 *
3260 	 * Params:
3261 	 *     appinfo = a #GAppInfo.
3262 	 *     contentType = a string.
3263 	 * Returns: %TRUE on success, %FALSE on error.
3264 	 *
3265 	 * Throws: GException on failure.
3266 	 */
3267 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) addSupportsType;
3268 	/**
3269 	 *
3270 	 * Params:
3271 	 *     appinfo = a #GAppInfo.
3272 	 * Returns: %TRUE if it is possible to remove supported
3273 	 *     content types from a given @appinfo, %FALSE if not.
3274 	 */
3275 	extern(C) int function(GAppInfo* appinfo) canRemoveSupportsType;
3276 	/**
3277 	 *
3278 	 * Params:
3279 	 *     appinfo = a #GAppInfo.
3280 	 *     contentType = a string.
3281 	 * Returns: %TRUE on success, %FALSE on error.
3282 	 *
3283 	 * Throws: GException on failure.
3284 	 */
3285 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) removeSupportsType;
3286 	/**
3287 	 *
3288 	 * Params:
3289 	 *     appinfo = a #GAppInfo
3290 	 * Returns: %TRUE if @appinfo can be deleted
3291 	 */
3292 	extern(C) int function(GAppInfo* appinfo) canDelete;
3293 	/**
3294 	 *
3295 	 * Params:
3296 	 *     appinfo = a #GAppInfo
3297 	 * Returns: %TRUE if @appinfo has been deleted
3298 	 */
3299 	extern(C) int function(GAppInfo* appinfo) doDelete;
3300 	/**
3301 	 *
3302 	 * Params:
3303 	 *     appinfo = a #GAppInfo
3304 	 * Returns: a string containing the @appinfo's commandline,
3305 	 *     or %NULL if this information is not available
3306 	 */
3307 	extern(C) char* function(GAppInfo* appinfo) getCommandline;
3308 	/**
3309 	 *
3310 	 * Params:
3311 	 *     appinfo = a #GAppInfo.
3312 	 * Returns: the display name of the application for @appinfo, or the name if
3313 	 *     no display name is available.
3314 	 */
3315 	extern(C) const(char)* function(GAppInfo* appinfo) getDisplayName;
3316 	/**
3317 	 *
3318 	 * Params:
3319 	 *     appinfo = a #GAppInfo.
3320 	 *     contentType = the content type.
3321 	 * Returns: %TRUE on success, %FALSE on error.
3322 	 *
3323 	 * Throws: GException on failure.
3324 	 */
3325 	extern(C) int function(GAppInfo* appinfo, const(char)* contentType, GError** err) setAsLastUsedForType;
3326 	/**
3327 	 *
3328 	 * Params:
3329 	 *     appinfo = a #GAppInfo that can handle files
3330 	 * Returns: a list of content types.
3331 	 */
3332 	extern(C) char** function(GAppInfo* appinfo) getSupportedTypes;
3333 	/** */
3334 	extern(C) void function(GAppInfo* appinfo, GList* uris, GAppLaunchContext* context, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) launchUrisAsync;
3335 	/**
3336 	 *
3337 	 * Params:
3338 	 *     appinfo = a #GAppInfo
3339 	 *     result = a #GAsyncResult
3340 	 * Returns: %TRUE on successful launch, %FALSE otherwise.
3341 	 *
3342 	 * Throws: GException on failure.
3343 	 */
3344 	extern(C) int function(GAppInfo* appinfo, GAsyncResult* result, GError** err) launchUrisFinish;
3345 }
3346 
3347 struct GAppInfoMonitor;
3348 
3349 struct GAppLaunchContext
3350 {
3351 	GObject parentInstance;
3352 	GAppLaunchContextPrivate* priv;
3353 }
3354 
3355 struct GAppLaunchContextClass
3356 {
3357 	GObjectClass parentClass;
3358 	/**
3359 	 *
3360 	 * Params:
3361 	 *     context = a #GAppLaunchContext
3362 	 *     info = a #GAppInfo
3363 	 *     files = a #GList of #GFile objects
3364 	 * Returns: a display string for the display.
3365 	 */
3366 	extern(C) char* function(GAppLaunchContext* context, GAppInfo* info, GList* files) getDisplay;
3367 	/**
3368 	 *
3369 	 * Params:
3370 	 *     context = a #GAppLaunchContext
3371 	 *     info = a #GAppInfo
3372 	 *     files = a #GList of of #GFile objects
3373 	 * Returns: a startup notification ID for the application, or %NULL if
3374 	 *     not supported.
3375 	 */
3376 	extern(C) char* function(GAppLaunchContext* context, GAppInfo* info, GList* files) getStartupNotifyId;
3377 	/** */
3378 	extern(C) void function(GAppLaunchContext* context, const(char)* startupNotifyId) launchFailed;
3379 	/** */
3380 	extern(C) void function(GAppLaunchContext* context, GAppInfo* info, GVariant* platformData) launched;
3381 	/** */
3382 	extern(C) void function(GAppLaunchContext* context, GAppInfo* info, GVariant* platformData) launchStarted;
3383 	/** */
3384 	extern(C) void function() GReserved1;
3385 	/** */
3386 	extern(C) void function() GReserved2;
3387 	/** */
3388 	extern(C) void function() GReserved3;
3389 }
3390 
3391 struct GAppLaunchContextPrivate;
3392 
3393 struct GApplication
3394 {
3395 	GObject parentInstance;
3396 	GApplicationPrivate* priv;
3397 }
3398 
3399 /**
3400  * Virtual function table for #GApplication.
3401  *
3402  * Since: 2.28
3403  */
3404 struct GApplicationClass
3405 {
3406 	GObjectClass parentClass;
3407 	/** */
3408 	extern(C) void function(GApplication* application) startup;
3409 	/** */
3410 	extern(C) void function(GApplication* application) activate;
3411 	/** */
3412 	extern(C) void function(GApplication* application, GFile** files, int nFiles, const(char)* hint) open;
3413 	/** */
3414 	extern(C) int function(GApplication* application, GApplicationCommandLine* commandLine) commandLine;
3415 	/**
3416 	 *
3417 	 * Params:
3418 	 *     application = a #GApplication
3419 	 *     arguments = array of command line arguments
3420 	 *     exitStatus = exit status to fill after processing the command line.
3421 	 * Returns: %TRUE if the commandline has been completely handled
3422 	 */
3423 	extern(C) int function(GApplication* application, char*** arguments, int* exitStatus) localCommandLine;
3424 	/** */
3425 	extern(C) void function(GApplication* application, GVariant* platformData) beforeEmit;
3426 	/** */
3427 	extern(C) void function(GApplication* application, GVariant* platformData) afterEmit;
3428 	/** */
3429 	extern(C) void function(GApplication* application, GVariantBuilder* builder) addPlatformData;
3430 	/** */
3431 	extern(C) void function(GApplication* application) quitMainloop;
3432 	/** */
3433 	extern(C) void function(GApplication* application) runMainloop;
3434 	/** */
3435 	extern(C) void function(GApplication* application) shutdown;
3436 	/** */
3437 	extern(C) int function(GApplication* application, GDBusConnection* connection, const(char)* objectPath, GError** err) dbusRegister;
3438 	/** */
3439 	extern(C) void function(GApplication* application, GDBusConnection* connection, const(char)* objectPath) dbusUnregister;
3440 	/** */
3441 	extern(C) int function(GApplication* application, GVariantDict* options) handleLocalOptions;
3442 	/** */
3443 	extern(C) int function(GApplication* application) nameLost;
3444 	void*[7] padding;
3445 }
3446 
3447 struct GApplicationCommandLine
3448 {
3449 	GObject parentInstance;
3450 	GApplicationCommandLinePrivate* priv;
3451 }
3452 
3453 /**
3454  * The #GApplicationCommandLineClass-struct
3455  * contains private data only.
3456  *
3457  * Since: 2.28
3458  */
3459 struct GApplicationCommandLineClass
3460 {
3461 	GObjectClass parentClass;
3462 	/** */
3463 	extern(C) void function(GApplicationCommandLine* cmdline, const(char)* message) printLiteral;
3464 	/** */
3465 	extern(C) void function(GApplicationCommandLine* cmdline, const(char)* message) printerrLiteral;
3466 	/**
3467 	 *
3468 	 * Params:
3469 	 *     cmdline = a #GApplicationCommandLine
3470 	 * Returns: a #GInputStream for stdin
3471 	 */
3472 	extern(C) GInputStream* function(GApplicationCommandLine* cmdline) getStdin;
3473 	void*[11] padding;
3474 }
3475 
3476 struct GApplicationCommandLinePrivate;
3477 
3478 struct GApplicationPrivate;
3479 
3480 struct GAsyncInitable;
3481 
3482 /**
3483  * Provides an interface for asynchronous initializing object such that
3484  * initialization may fail.
3485  *
3486  * Since: 2.22
3487  */
3488 struct GAsyncInitableIface
3489 {
3490 	/**
3491 	 * The parent interface.
3492 	 */
3493 	GTypeInterface gIface;
3494 	/** */
3495 	extern(C) void function(GAsyncInitable* initable, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) initAsync;
3496 	/**
3497 	 *
3498 	 * Params:
3499 	 *     initable = a #GAsyncInitable.
3500 	 *     res = a #GAsyncResult.
3501 	 * Returns: %TRUE if successful. If an error has occurred, this function
3502 	 *     will return %FALSE and set @error appropriately if present.
3503 	 *
3504 	 * Throws: GException on failure.
3505 	 */
3506 	extern(C) int function(GAsyncInitable* initable, GAsyncResult* res, GError** err) initFinish;
3507 }
3508 
3509 struct GAsyncResult;
3510 
3511 /**
3512  * Interface definition for #GAsyncResult.
3513  */
3514 struct GAsyncResultIface
3515 {
3516 	/**
3517 	 * The parent interface.
3518 	 */
3519 	GTypeInterface gIface;
3520 	/**
3521 	 *
3522 	 * Params:
3523 	 *     res = a #GAsyncResult.
3524 	 * Returns: the user data for @res.
3525 	 */
3526 	extern(C) void* function(GAsyncResult* res) getUserData;
3527 	/**
3528 	 *
3529 	 * Params:
3530 	 *     res = a #GAsyncResult
3531 	 * Returns: a new reference to the source
3532 	 *     object for the @res, or %NULL if there is none.
3533 	 */
3534 	extern(C) GObject* function(GAsyncResult* res) getSourceObject;
3535 	/**
3536 	 *
3537 	 * Params:
3538 	 *     res = a #GAsyncResult
3539 	 *     sourceTag = an application-defined tag
3540 	 * Returns: %TRUE if @res has the indicated @source_tag, %FALSE if
3541 	 *     not.
3542 	 */
3543 	extern(C) int function(GAsyncResult* res, void* sourceTag) isTagged;
3544 }
3545 
3546 struct GBufferedInputStream
3547 {
3548 	GFilterInputStream parentInstance;
3549 	GBufferedInputStreamPrivate* priv;
3550 }
3551 
3552 struct GBufferedInputStreamClass
3553 {
3554 	GFilterInputStreamClass parentClass;
3555 	/**
3556 	 *
3557 	 * Params:
3558 	 *     stream = a #GBufferedInputStream
3559 	 *     count = the number of bytes that will be read from the stream
3560 	 *     cancellable = optional #GCancellable object, %NULL to ignore
3561 	 * Returns: the number of bytes read into @stream's buffer, up to @count,
3562 	 *     or -1 on error.
3563 	 *
3564 	 * Throws: GException on failure.
3565 	 */
3566 	extern(C) ptrdiff_t function(GBufferedInputStream* stream, ptrdiff_t count, GCancellable* cancellable, GError** err) fill;
3567 	/** */
3568 	extern(C) void function(GBufferedInputStream* stream, ptrdiff_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) fillAsync;
3569 	/**
3570 	 *
3571 	 * Params:
3572 	 *     stream = a #GBufferedInputStream
3573 	 *     result = a #GAsyncResult
3574 	 * Returns: a #gssize of the read stream, or `-1` on an error.
3575 	 *
3576 	 * Throws: GException on failure.
3577 	 */
3578 	extern(C) ptrdiff_t function(GBufferedInputStream* stream, GAsyncResult* result, GError** err) fillFinish;
3579 	/** */
3580 	extern(C) void function() GReserved1;
3581 	/** */
3582 	extern(C) void function() GReserved2;
3583 	/** */
3584 	extern(C) void function() GReserved3;
3585 	/** */
3586 	extern(C) void function() GReserved4;
3587 	/** */
3588 	extern(C) void function() GReserved5;
3589 }
3590 
3591 struct GBufferedInputStreamPrivate;
3592 
3593 struct GBufferedOutputStream
3594 {
3595 	GFilterOutputStream parentInstance;
3596 	GBufferedOutputStreamPrivate* priv;
3597 }
3598 
3599 struct GBufferedOutputStreamClass
3600 {
3601 	GFilterOutputStreamClass parentClass;
3602 	/** */
3603 	extern(C) void function() GReserved1;
3604 	/** */
3605 	extern(C) void function() GReserved2;
3606 }
3607 
3608 struct GBufferedOutputStreamPrivate;
3609 
3610 struct GBytesIcon;
3611 
3612 struct GCancellable
3613 {
3614 	GObject parentInstance;
3615 	GCancellablePrivate* priv;
3616 }
3617 
3618 struct GCancellableClass
3619 {
3620 	GObjectClass parentClass;
3621 	/** */
3622 	extern(C) void function(GCancellable* cancellable) cancelled;
3623 	/** */
3624 	extern(C) void function() GReserved1;
3625 	/** */
3626 	extern(C) void function() GReserved2;
3627 	/** */
3628 	extern(C) void function() GReserved3;
3629 	/** */
3630 	extern(C) void function() GReserved4;
3631 	/** */
3632 	extern(C) void function() GReserved5;
3633 }
3634 
3635 struct GCancellablePrivate;
3636 
3637 struct GCharsetConverter;
3638 
3639 struct GCharsetConverterClass
3640 {
3641 	GObjectClass parentClass;
3642 }
3643 
3644 struct GConverter;
3645 
3646 /**
3647  * Provides an interface for converting data from one type
3648  * to another type. The conversion can be stateful
3649  * and may fail at any place.
3650  *
3651  * Since: 2.24
3652  */
3653 struct GConverterIface
3654 {
3655 	/**
3656 	 * The parent interface.
3657 	 */
3658 	GTypeInterface gIface;
3659 	/**
3660 	 *
3661 	 * Params:
3662 	 *     converter = a #GConverter.
3663 	 *     inbuf = the buffer
3664 	 *         containing the data to convert.
3665 	 *     inbufSize = the number of bytes in @inbuf
3666 	 *     outbuf = a buffer to write
3667 	 *         converted data in.
3668 	 *     outbufSize = the number of bytes in @outbuf, must be at least one
3669 	 *     flags = a #GConverterFlags controlling the conversion details
3670 	 *     bytesRead = will be set to the number of bytes read from @inbuf on success
3671 	 *     bytesWritten = will be set to the number of bytes written to @outbuf on success
3672 	 * Returns: a #GConverterResult, %G_CONVERTER_ERROR on error.
3673 	 *
3674 	 * Throws: GException on failure.
3675 	 */
3676 	extern(C) GConverterResult function(GConverter* converter, void* inbuf, size_t inbufSize, void* outbuf, size_t outbufSize, GConverterFlags flags, size_t* bytesRead, size_t* bytesWritten, GError** err) convert;
3677 	/** */
3678 	extern(C) void function(GConverter* converter) reset;
3679 }
3680 
3681 struct GConverterInputStream
3682 {
3683 	GFilterInputStream parentInstance;
3684 	GConverterInputStreamPrivate* priv;
3685 }
3686 
3687 struct GConverterInputStreamClass
3688 {
3689 	GFilterInputStreamClass parentClass;
3690 	/** */
3691 	extern(C) void function() GReserved1;
3692 	/** */
3693 	extern(C) void function() GReserved2;
3694 	/** */
3695 	extern(C) void function() GReserved3;
3696 	/** */
3697 	extern(C) void function() GReserved4;
3698 	/** */
3699 	extern(C) void function() GReserved5;
3700 }
3701 
3702 struct GConverterInputStreamPrivate;
3703 
3704 struct GConverterOutputStream
3705 {
3706 	GFilterOutputStream parentInstance;
3707 	GConverterOutputStreamPrivate* priv;
3708 }
3709 
3710 struct GConverterOutputStreamClass
3711 {
3712 	GFilterOutputStreamClass parentClass;
3713 	/** */
3714 	extern(C) void function() GReserved1;
3715 	/** */
3716 	extern(C) void function() GReserved2;
3717 	/** */
3718 	extern(C) void function() GReserved3;
3719 	/** */
3720 	extern(C) void function() GReserved4;
3721 	/** */
3722 	extern(C) void function() GReserved5;
3723 }
3724 
3725 struct GConverterOutputStreamPrivate;
3726 
3727 struct GCredentials;
3728 
3729 /**
3730  * Class structure for #GCredentials.
3731  *
3732  * Since: 2.26
3733  */
3734 struct GCredentialsClass;
3735 
3736 struct GDBusActionGroup;
3737 
3738 struct GDBusAnnotationInfo
3739 {
3740 	/**
3741 	 * The reference count or -1 if statically allocated.
3742 	 */
3743 	int refCount;
3744 	/**
3745 	 * The name of the annotation, e.g. "org.freedesktop.DBus.Deprecated".
3746 	 */
3747 	char* key;
3748 	/**
3749 	 * The value of the annotation.
3750 	 */
3751 	char* value;
3752 	/**
3753 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3754 	 */
3755 	GDBusAnnotationInfo** annotations;
3756 }
3757 
3758 struct GDBusArgInfo
3759 {
3760 	/**
3761 	 * The reference count or -1 if statically allocated.
3762 	 */
3763 	int refCount;
3764 	/**
3765 	 * Name of the argument, e.g. @unix_user_id.
3766 	 */
3767 	char* name;
3768 	/**
3769 	 * D-Bus signature of the argument (a single complete type).
3770 	 */
3771 	char* signature;
3772 	/**
3773 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3774 	 */
3775 	GDBusAnnotationInfo** annotations;
3776 }
3777 
3778 struct GDBusAuthObserver;
3779 
3780 struct GDBusConnection;
3781 
3782 /**
3783  * Struct used in g_dbus_error_register_error_domain().
3784  *
3785  * Since: 2.26
3786  */
3787 struct GDBusErrorEntry
3788 {
3789 	/**
3790 	 * An error code.
3791 	 */
3792 	int errorCode;
3793 	/**
3794 	 * The D-Bus error name to associate with @error_code.
3795 	 */
3796 	const(char)* dbusErrorName;
3797 }
3798 
3799 struct GDBusInterface;
3800 
3801 /**
3802  * Base type for D-Bus interfaces.
3803  *
3804  * Since: 2.30
3805  */
3806 struct GDBusInterfaceIface
3807 {
3808 	/**
3809 	 * The parent interface.
3810 	 */
3811 	GTypeInterface parentIface;
3812 	/**
3813 	 *
3814 	 * Params:
3815 	 *     interface_ = An exported D-Bus interface.
3816 	 * Returns: A #GDBusInterfaceInfo. Do not free.
3817 	 */
3818 	extern(C) GDBusInterfaceInfo* function(GDBusInterface* interface_) getInfo;
3819 	/**
3820 	 *
3821 	 * Params:
3822 	 *     interface_ = An exported D-Bus interface
3823 	 * Returns: A #GDBusObject or %NULL. The returned
3824 	 *     reference belongs to @interface_ and should not be freed.
3825 	 */
3826 	extern(C) GDBusObject* function(GDBusInterface* interface_) getObject;
3827 	/** */
3828 	extern(C) void function(GDBusInterface* interface_, GDBusObject* object) setObject;
3829 	/**
3830 	 *
3831 	 * Params:
3832 	 *     interface_ = An exported D-Bus interface.
3833 	 * Returns: A #GDBusObject or %NULL. The returned
3834 	 *     reference should be freed with g_object_unref().
3835 	 */
3836 	extern(C) GDBusObject* function(GDBusInterface* interface_) dupObject;
3837 }
3838 
3839 struct GDBusInterfaceInfo
3840 {
3841 	/**
3842 	 * The reference count or -1 if statically allocated.
3843 	 */
3844 	int refCount;
3845 	/**
3846 	 * The name of the D-Bus interface, e.g. "org.freedesktop.DBus.Properties".
3847 	 */
3848 	char* name;
3849 	/**
3850 	 * A pointer to a %NULL-terminated array of pointers to #GDBusMethodInfo structures or %NULL if there are no methods.
3851 	 */
3852 	GDBusMethodInfo** methods;
3853 	/**
3854 	 * A pointer to a %NULL-terminated array of pointers to #GDBusSignalInfo structures or %NULL if there are no signals.
3855 	 */
3856 	GDBusSignalInfo** signals;
3857 	/**
3858 	 * A pointer to a %NULL-terminated array of pointers to #GDBusPropertyInfo structures or %NULL if there are no properties.
3859 	 */
3860 	GDBusPropertyInfo** properties;
3861 	/**
3862 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
3863 	 */
3864 	GDBusAnnotationInfo** annotations;
3865 }
3866 
3867 struct GDBusInterfaceSkeleton
3868 {
3869 	GObject parentInstance;
3870 	GDBusInterfaceSkeletonPrivate* priv;
3871 }
3872 
3873 /**
3874  * Class structure for #GDBusInterfaceSkeleton.
3875  *
3876  * Since: 2.30
3877  */
3878 struct GDBusInterfaceSkeletonClass
3879 {
3880 	/**
3881 	 * The parent class.
3882 	 */
3883 	GObjectClass parentClass;
3884 	/**
3885 	 *
3886 	 * Params:
3887 	 *     interface_ = A #GDBusInterfaceSkeleton.
3888 	 * Returns: A #GDBusInterfaceInfo (never %NULL). Do not free.
3889 	 */
3890 	extern(C) GDBusInterfaceInfo* function(GDBusInterfaceSkeleton* interface_) getInfo;
3891 	/**
3892 	 *
3893 	 * Params:
3894 	 *     interface_ = A #GDBusInterfaceSkeleton.
3895 	 * Returns: A #GDBusInterfaceVTable (never %NULL).
3896 	 */
3897 	extern(C) GDBusInterfaceVTable* function(GDBusInterfaceSkeleton* interface_) getVtable;
3898 	/**
3899 	 *
3900 	 * Params:
3901 	 *     interface_ = A #GDBusInterfaceSkeleton.
3902 	 * Returns: A #GVariant of type
3903 	 *     ['a{sv}'][G-VARIANT-TYPE-VARDICT:CAPS].
3904 	 *     Free with g_variant_unref().
3905 	 */
3906 	extern(C) GVariant* function(GDBusInterfaceSkeleton* interface_) getProperties;
3907 	/** */
3908 	extern(C) void function(GDBusInterfaceSkeleton* interface_) flush;
3909 	void*[8] vfuncPadding;
3910 	/** */
3911 	extern(C) int function(GDBusInterfaceSkeleton* interface_, GDBusMethodInvocation* invocation) gAuthorizeMethod;
3912 	void*[8] signalPadding;
3913 }
3914 
3915 struct GDBusInterfaceSkeletonPrivate;
3916 
3917 /**
3918  * Virtual table for handling properties and method calls for a D-Bus
3919  * interface.
3920  *
3921  * Since 2.38, if you want to handle getting/setting D-Bus properties
3922  * asynchronously, give %NULL as your get_property() or set_property()
3923  * function. The D-Bus call will be directed to your @method_call function,
3924  * with the provided @interface_name set to "org.freedesktop.DBus.Properties".
3925  *
3926  * Ownership of the #GDBusMethodInvocation object passed to the
3927  * method_call() function is transferred to your handler; you must
3928  * call one of the methods of #GDBusMethodInvocation to return a reply
3929  * (possibly empty), or an error. These functions also take ownership
3930  * of the passed-in invocation object, so unless the invocation
3931  * object has otherwise been referenced, it will be then be freed.
3932  * Calling one of these functions may be done within your
3933  * method_call() implementation but it also can be done at a later
3934  * point to handle the method asynchronously.
3935  *
3936  * The usual checks on the validity of the calls is performed. For
3937  * `Get` calls, an error is automatically returned if the property does
3938  * not exist or the permissions do not allow access. The same checks are
3939  * performed for `Set` calls, and the provided value is also checked for
3940  * being the correct type.
3941  *
3942  * For both `Get` and `Set` calls, the #GDBusMethodInvocation
3943  * passed to the @method_call handler can be queried with
3944  * g_dbus_method_invocation_get_property_info() to get a pointer
3945  * to the #GDBusPropertyInfo of the property.
3946  *
3947  * If you have readable properties specified in your interface info,
3948  * you must ensure that you either provide a non-%NULL @get_property()
3949  * function or provide implementations of both the `Get` and `GetAll`
3950  * methods on org.freedesktop.DBus.Properties interface in your @method_call
3951  * function. Note that the required return type of the `Get` call is
3952  * `(v)`, not the type of the property. `GetAll` expects a return value
3953  * of type `a{sv}`.
3954  *
3955  * If you have writable properties specified in your interface info,
3956  * you must ensure that you either provide a non-%NULL @set_property()
3957  * function or provide an implementation of the `Set` call. If implementing
3958  * the call, you must return the value of type %G_VARIANT_TYPE_UNIT.
3959  *
3960  * Since: 2.26
3961  */
3962 struct GDBusInterfaceVTable
3963 {
3964 	/**
3965 	 * Function for handling incoming method calls.
3966 	 */
3967 	GDBusInterfaceMethodCallFunc methodCall;
3968 	/**
3969 	 * Function for getting a property.
3970 	 */
3971 	GDBusInterfaceGetPropertyFunc getProperty;
3972 	/**
3973 	 * Function for setting a property.
3974 	 */
3975 	GDBusInterfaceSetPropertyFunc setProperty;
3976 	void*[8] padding;
3977 }
3978 
3979 struct GDBusMenuModel;
3980 
3981 struct GDBusMessage;
3982 
3983 struct GDBusMethodInfo
3984 {
3985 	/**
3986 	 * The reference count or -1 if statically allocated.
3987 	 */
3988 	int refCount;
3989 	/**
3990 	 * The name of the D-Bus method, e.g. @RequestName.
3991 	 */
3992 	char* name;
3993 	/**
3994 	 * A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no in arguments.
3995 	 */
3996 	GDBusArgInfo** inArgs;
3997 	/**
3998 	 * A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no out arguments.
3999 	 */
4000 	GDBusArgInfo** outArgs;
4001 	/**
4002 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
4003 	 */
4004 	GDBusAnnotationInfo** annotations;
4005 }
4006 
4007 struct GDBusMethodInvocation;
4008 
4009 struct GDBusNodeInfo
4010 {
4011 	/**
4012 	 * The reference count or -1 if statically allocated.
4013 	 */
4014 	int refCount;
4015 	/**
4016 	 * The path of the node or %NULL if omitted. Note that this may be a relative path. See the D-Bus specification for more details.
4017 	 */
4018 	char* path;
4019 	/**
4020 	 * A pointer to a %NULL-terminated array of pointers to #GDBusInterfaceInfo structures or %NULL if there are no interfaces.
4021 	 */
4022 	GDBusInterfaceInfo** interfaces;
4023 	/**
4024 	 * A pointer to a %NULL-terminated array of pointers to #GDBusNodeInfo structures or %NULL if there are no nodes.
4025 	 */
4026 	GDBusNodeInfo** nodes;
4027 	/**
4028 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
4029 	 */
4030 	GDBusAnnotationInfo** annotations;
4031 }
4032 
4033 struct GDBusObject;
4034 
4035 /**
4036  * Base object type for D-Bus objects.
4037  *
4038  * Since: 2.30
4039  */
4040 struct GDBusObjectIface
4041 {
4042 	/**
4043 	 * The parent interface.
4044 	 */
4045 	GTypeInterface parentIface;
4046 	/**
4047 	 *
4048 	 * Params:
4049 	 *     object = A #GDBusObject.
4050 	 * Returns: A string owned by @object. Do not free.
4051 	 */
4052 	extern(C) const(char)* function(GDBusObject* object) getObjectPath;
4053 	/**
4054 	 *
4055 	 * Params:
4056 	 *     object = A #GDBusObject.
4057 	 * Returns: A list of #GDBusInterface instances.
4058 	 *     The returned list must be freed by g_list_free() after each element has been freed
4059 	 *     with g_object_unref().
4060 	 */
4061 	extern(C) GList* function(GDBusObject* object) getInterfaces;
4062 	/**
4063 	 *
4064 	 * Params:
4065 	 *     object = A #GDBusObject.
4066 	 *     interfaceName = A D-Bus interface name.
4067 	 * Returns: %NULL if not found, otherwise a
4068 	 *     #GDBusInterface that must be freed with g_object_unref().
4069 	 */
4070 	extern(C) GDBusInterface* function(GDBusObject* object, const(char)* interfaceName) getInterface;
4071 	/** */
4072 	extern(C) void function(GDBusObject* object, GDBusInterface* interface_) interfaceAdded;
4073 	/** */
4074 	extern(C) void function(GDBusObject* object, GDBusInterface* interface_) interfaceRemoved;
4075 }
4076 
4077 struct GDBusObjectManager;
4078 
4079 struct GDBusObjectManagerClient
4080 {
4081 	GObject parentInstance;
4082 	GDBusObjectManagerClientPrivate* priv;
4083 }
4084 
4085 /**
4086  * Class structure for #GDBusObjectManagerClient.
4087  *
4088  * Since: 2.30
4089  */
4090 struct GDBusObjectManagerClientClass
4091 {
4092 	/**
4093 	 * The parent class.
4094 	 */
4095 	GObjectClass parentClass;
4096 	/** */
4097 	extern(C) void function(GDBusObjectManagerClient* manager, GDBusObjectProxy* objectProxy, GDBusProxy* interfaceProxy, const(char)* senderName, const(char)* signalName, GVariant* parameters) interfaceProxySignal;
4098 	/** */
4099 	extern(C) void function(GDBusObjectManagerClient* manager, GDBusObjectProxy* objectProxy, GDBusProxy* interfaceProxy, GVariant* changedProperties, const(char)* invalidatedProperties) interfaceProxyPropertiesChanged;
4100 	void*[8] padding;
4101 }
4102 
4103 struct GDBusObjectManagerClientPrivate;
4104 
4105 /**
4106  * Base type for D-Bus object managers.
4107  *
4108  * Since: 2.30
4109  */
4110 struct GDBusObjectManagerIface
4111 {
4112 	/**
4113 	 * The parent interface.
4114 	 */
4115 	GTypeInterface parentIface;
4116 	/**
4117 	 *
4118 	 * Params:
4119 	 *     manager = A #GDBusObjectManager.
4120 	 * Returns: A string owned by @manager. Do not free.
4121 	 */
4122 	extern(C) const(char)* function(GDBusObjectManager* manager) getObjectPath;
4123 	/**
4124 	 *
4125 	 * Params:
4126 	 *     manager = A #GDBusObjectManager.
4127 	 * Returns: A list of
4128 	 *     #GDBusObject objects. The returned list should be freed with
4129 	 *     g_list_free() after each element has been freed with
4130 	 *     g_object_unref().
4131 	 */
4132 	extern(C) GList* function(GDBusObjectManager* manager) getObjects;
4133 	/**
4134 	 *
4135 	 * Params:
4136 	 *     manager = A #GDBusObjectManager.
4137 	 *     objectPath = Object path to look up.
4138 	 * Returns: A #GDBusObject or %NULL. Free with
4139 	 *     g_object_unref().
4140 	 */
4141 	extern(C) GDBusObject* function(GDBusObjectManager* manager, const(char)* objectPath) getObject;
4142 	/**
4143 	 *
4144 	 * Params:
4145 	 *     manager = A #GDBusObjectManager.
4146 	 *     objectPath = Object path to look up.
4147 	 *     interfaceName = D-Bus interface name to look up.
4148 	 * Returns: A #GDBusInterface instance or %NULL. Free
4149 	 *     with g_object_unref().
4150 	 */
4151 	extern(C) GDBusInterface* function(GDBusObjectManager* manager, const(char)* objectPath, const(char)* interfaceName) getInterface;
4152 	/** */
4153 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object) objectAdded;
4154 	/** */
4155 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object) objectRemoved;
4156 	/** */
4157 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object, GDBusInterface* interface_) interfaceAdded;
4158 	/** */
4159 	extern(C) void function(GDBusObjectManager* manager, GDBusObject* object, GDBusInterface* interface_) interfaceRemoved;
4160 }
4161 
4162 struct GDBusObjectManagerServer
4163 {
4164 	GObject parentInstance;
4165 	GDBusObjectManagerServerPrivate* priv;
4166 }
4167 
4168 /**
4169  * Class structure for #GDBusObjectManagerServer.
4170  *
4171  * Since: 2.30
4172  */
4173 struct GDBusObjectManagerServerClass
4174 {
4175 	/**
4176 	 * The parent class.
4177 	 */
4178 	GObjectClass parentClass;
4179 	void*[8] padding;
4180 }
4181 
4182 struct GDBusObjectManagerServerPrivate;
4183 
4184 struct GDBusObjectProxy
4185 {
4186 	GObject parentInstance;
4187 	GDBusObjectProxyPrivate* priv;
4188 }
4189 
4190 /**
4191  * Class structure for #GDBusObjectProxy.
4192  *
4193  * Since: 2.30
4194  */
4195 struct GDBusObjectProxyClass
4196 {
4197 	/**
4198 	 * The parent class.
4199 	 */
4200 	GObjectClass parentClass;
4201 	void*[8] padding;
4202 }
4203 
4204 struct GDBusObjectProxyPrivate;
4205 
4206 struct GDBusObjectSkeleton
4207 {
4208 	GObject parentInstance;
4209 	GDBusObjectSkeletonPrivate* priv;
4210 }
4211 
4212 /**
4213  * Class structure for #GDBusObjectSkeleton.
4214  *
4215  * Since: 2.30
4216  */
4217 struct GDBusObjectSkeletonClass
4218 {
4219 	/**
4220 	 * The parent class.
4221 	 */
4222 	GObjectClass parentClass;
4223 	/** */
4224 	extern(C) int function(GDBusObjectSkeleton* object, GDBusInterfaceSkeleton* interface_, GDBusMethodInvocation* invocation) authorizeMethod;
4225 	void*[8] padding;
4226 }
4227 
4228 struct GDBusObjectSkeletonPrivate;
4229 
4230 struct GDBusPropertyInfo
4231 {
4232 	/**
4233 	 * The reference count or -1 if statically allocated.
4234 	 */
4235 	int refCount;
4236 	/**
4237 	 * The name of the D-Bus property, e.g. "SupportedFilesystems".
4238 	 */
4239 	char* name;
4240 	/**
4241 	 * The D-Bus signature of the property (a single complete type).
4242 	 */
4243 	char* signature;
4244 	/**
4245 	 * Access control flags for the property.
4246 	 */
4247 	GDBusPropertyInfoFlags flags;
4248 	/**
4249 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
4250 	 */
4251 	GDBusAnnotationInfo** annotations;
4252 }
4253 
4254 struct GDBusProxy
4255 {
4256 	GObject parentInstance;
4257 	GDBusProxyPrivate* priv;
4258 }
4259 
4260 /**
4261  * Class structure for #GDBusProxy.
4262  *
4263  * Since: 2.26
4264  */
4265 struct GDBusProxyClass
4266 {
4267 	GObjectClass parentClass;
4268 	/** */
4269 	extern(C) void function(GDBusProxy* proxy, GVariant* changedProperties, const(char)* invalidatedProperties) gPropertiesChanged;
4270 	/** */
4271 	extern(C) void function(GDBusProxy* proxy, const(char)* senderName, const(char)* signalName, GVariant* parameters) gSignal;
4272 	void*[32] padding;
4273 }
4274 
4275 struct GDBusProxyPrivate;
4276 
4277 struct GDBusServer;
4278 
4279 struct GDBusSignalInfo
4280 {
4281 	/**
4282 	 * The reference count or -1 if statically allocated.
4283 	 */
4284 	int refCount;
4285 	/**
4286 	 * The name of the D-Bus signal, e.g. "NameOwnerChanged".
4287 	 */
4288 	char* name;
4289 	/**
4290 	 * A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no arguments.
4291 	 */
4292 	GDBusArgInfo** args;
4293 	/**
4294 	 * A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations.
4295 	 */
4296 	GDBusAnnotationInfo** annotations;
4297 }
4298 
4299 /**
4300  * Virtual table for handling subtrees registered with g_dbus_connection_register_subtree().
4301  *
4302  * Since: 2.26
4303  */
4304 struct GDBusSubtreeVTable
4305 {
4306 	/**
4307 	 * Function for enumerating child nodes.
4308 	 */
4309 	GDBusSubtreeEnumerateFunc enumerate;
4310 	/**
4311 	 * Function for introspecting a child node.
4312 	 */
4313 	GDBusSubtreeIntrospectFunc introspect;
4314 	/**
4315 	 * Function for dispatching a remote call on a child node.
4316 	 */
4317 	GDBusSubtreeDispatchFunc dispatch;
4318 	void*[8] padding;
4319 }
4320 
4321 struct GDataInputStream
4322 {
4323 	GBufferedInputStream parentInstance;
4324 	GDataInputStreamPrivate* priv;
4325 }
4326 
4327 struct GDataInputStreamClass
4328 {
4329 	GBufferedInputStreamClass parentClass;
4330 	/** */
4331 	extern(C) void function() GReserved1;
4332 	/** */
4333 	extern(C) void function() GReserved2;
4334 	/** */
4335 	extern(C) void function() GReserved3;
4336 	/** */
4337 	extern(C) void function() GReserved4;
4338 	/** */
4339 	extern(C) void function() GReserved5;
4340 }
4341 
4342 struct GDataInputStreamPrivate;
4343 
4344 struct GDataOutputStream
4345 {
4346 	GFilterOutputStream parentInstance;
4347 	GDataOutputStreamPrivate* priv;
4348 }
4349 
4350 struct GDataOutputStreamClass
4351 {
4352 	GFilterOutputStreamClass parentClass;
4353 	/** */
4354 	extern(C) void function() GReserved1;
4355 	/** */
4356 	extern(C) void function() GReserved2;
4357 	/** */
4358 	extern(C) void function() GReserved3;
4359 	/** */
4360 	extern(C) void function() GReserved4;
4361 	/** */
4362 	extern(C) void function() GReserved5;
4363 }
4364 
4365 struct GDataOutputStreamPrivate;
4366 
4367 struct GDatagramBased;
4368 
4369 /**
4370  * Provides an interface for socket-like objects which have datagram semantics,
4371  * following the Berkeley sockets API. The interface methods are thin wrappers
4372  * around the corresponding virtual methods, and no pre-processing of inputs is
4373  * implemented — so implementations of this API must handle all functionality
4374  * documented in the interface methods.
4375  *
4376  * Since: 2.48
4377  */
4378 struct GDatagramBasedInterface
4379 {
4380 	/**
4381 	 * The parent interface.
4382 	 */
4383 	GTypeInterface gIface;
4384 	/**
4385 	 *
4386 	 * Params:
4387 	 *     datagramBased = a #GDatagramBased
4388 	 *     messages = an array of #GInputMessage structs
4389 	 *     numMessages = the number of elements in @messages
4390 	 *     flags = an int containing #GSocketMsgFlags flags for the overall operation
4391 	 *     timeout = the maximum time (in microseconds) to wait, 0 to not block, or -1
4392 	 *         to block indefinitely
4393 	 *     cancellable = a %GCancellable
4394 	 * Returns: number of messages received, or -1 on error. Note that the number
4395 	 *     of messages received may be smaller than @num_messages if @timeout is
4396 	 *     zero or positive, if the peer closed the connection, or if @num_messages
4397 	 *     was larger than `UIO_MAXIOV` (1024), in which case the caller may re-try
4398 	 *     to receive the remaining messages.
4399 	 *
4400 	 * Throws: GException on failure.
4401 	 */
4402 	extern(C) int function(GDatagramBased* datagramBased, GInputMessage* messages, uint numMessages, int flags, long timeout, GCancellable* cancellable, GError** err) receiveMessages;
4403 	/**
4404 	 *
4405 	 * Params:
4406 	 *     datagramBased = a #GDatagramBased
4407 	 *     messages = an array of #GOutputMessage structs
4408 	 *     numMessages = the number of elements in @messages
4409 	 *     flags = an int containing #GSocketMsgFlags flags
4410 	 *     timeout = the maximum time (in microseconds) to wait, 0 to not block, or -1
4411 	 *         to block indefinitely
4412 	 *     cancellable = a %GCancellable
4413 	 * Returns: number of messages sent, or -1 on error. Note that the number of
4414 	 *     messages sent may be smaller than @num_messages if @timeout is zero
4415 	 *     or positive, or if @num_messages was larger than `UIO_MAXIOV` (1024), in
4416 	 *     which case the caller may re-try to send the remaining messages.
4417 	 *
4418 	 * Throws: GException on failure.
4419 	 */
4420 	extern(C) int function(GDatagramBased* datagramBased, GOutputMessage* messages, uint numMessages, int flags, long timeout, GCancellable* cancellable, GError** err) sendMessages;
4421 	/**
4422 	 *
4423 	 * Params:
4424 	 *     datagramBased = a #GDatagramBased
4425 	 *     condition = a #GIOCondition mask to monitor
4426 	 *     cancellable = a #GCancellable
4427 	 * Returns: a newly allocated #GSource
4428 	 */
4429 	extern(C) GSource* function(GDatagramBased* datagramBased, GIOCondition condition, GCancellable* cancellable) createSource;
4430 	/**
4431 	 *
4432 	 * Params:
4433 	 *     datagramBased = a #GDatagramBased
4434 	 *     condition = a #GIOCondition mask to check
4435 	 * Returns: the #GIOCondition mask of the current state
4436 	 */
4437 	extern(C) GIOCondition function(GDatagramBased* datagramBased, GIOCondition condition) conditionCheck;
4438 	/**
4439 	 *
4440 	 * Params:
4441 	 *     datagramBased = a #GDatagramBased
4442 	 *     condition = a #GIOCondition mask to wait for
4443 	 *     timeout = the maximum time (in microseconds) to wait, 0 to not block, or -1
4444 	 *         to block indefinitely
4445 	 *     cancellable = a #GCancellable
4446 	 * Returns: %TRUE if the condition was met, %FALSE otherwise
4447 	 *
4448 	 * Throws: GException on failure.
4449 	 */
4450 	extern(C) int function(GDatagramBased* datagramBased, GIOCondition condition, long timeout, GCancellable* cancellable, GError** err) conditionWait;
4451 }
4452 
4453 struct GDebugController;
4454 
4455 struct GDebugControllerDBus
4456 {
4457 	GObject parentInstance;
4458 }
4459 
4460 /**
4461  * The virtual function table for #GDebugControllerDBus.
4462  *
4463  * Since: 2.72
4464  */
4465 struct GDebugControllerDBusClass
4466 {
4467 	/**
4468 	 * The parent class.
4469 	 */
4470 	GObjectClass parentClass;
4471 	/** */
4472 	extern(C) int function(GDebugControllerDBus* controller, GDBusMethodInvocation* invocation) authorize;
4473 	void*[12] padding;
4474 }
4475 
4476 /**
4477  * The virtual function table for #GDebugController.
4478  *
4479  * Since: 2.72
4480  */
4481 struct GDebugControllerInterface
4482 {
4483 	/**
4484 	 * The parent interface.
4485 	 */
4486 	GTypeInterface gIface;
4487 }
4488 
4489 struct GDesktopAppInfo;
4490 
4491 struct GDesktopAppInfoClass
4492 {
4493 	GObjectClass parentClass;
4494 }
4495 
4496 struct GDesktopAppInfoLookup;
4497 
4498 /**
4499  * Interface that is used by backends to associate default
4500  * handlers with URI schemes.
4501  */
4502 struct GDesktopAppInfoLookupIface
4503 {
4504 	GTypeInterface gIface;
4505 	/**
4506 	 *
4507 	 * Params:
4508 	 *     lookup = a #GDesktopAppInfoLookup
4509 	 *     uriScheme = a string containing a URI scheme.
4510 	 * Returns: #GAppInfo for given @uri_scheme or
4511 	 *     %NULL on error.
4512 	 */
4513 	extern(C) GAppInfo* function(GDesktopAppInfoLookup* lookup, const(char)* uriScheme) getDefaultForUriScheme;
4514 }
4515 
4516 struct GDrive;
4517 
4518 /**
4519  * Interface for creating #GDrive implementations.
4520  */
4521 struct GDriveIface
4522 {
4523 	/**
4524 	 * The parent interface.
4525 	 */
4526 	GTypeInterface gIface;
4527 	/** */
4528 	extern(C) void function(GDrive* drive) changed;
4529 	/** */
4530 	extern(C) void function(GDrive* drive) disconnected;
4531 	/** */
4532 	extern(C) void function(GDrive* drive) ejectButton;
4533 	/**
4534 	 *
4535 	 * Params:
4536 	 *     drive = a #GDrive.
4537 	 * Returns: a string containing @drive's name. The returned
4538 	 *     string should be freed when no longer needed.
4539 	 */
4540 	extern(C) char* function(GDrive* drive) getName;
4541 	/**
4542 	 *
4543 	 * Params:
4544 	 *     drive = a #GDrive.
4545 	 * Returns: #GIcon for the @drive.
4546 	 *     Free the returned object with g_object_unref().
4547 	 */
4548 	extern(C) GIcon* function(GDrive* drive) getIcon;
4549 	/**
4550 	 *
4551 	 * Params:
4552 	 *     drive = a #GDrive.
4553 	 * Returns: %TRUE if the @drive contains volumes, %FALSE otherwise.
4554 	 */
4555 	extern(C) int function(GDrive* drive) hasVolumes;
4556 	/**
4557 	 *
4558 	 * Params:
4559 	 *     drive = a #GDrive.
4560 	 * Returns: #GList containing any #GVolume objects on the given @drive.
4561 	 */
4562 	extern(C) GList* function(GDrive* drive) getVolumes;
4563 	/**
4564 	 *
4565 	 * Params:
4566 	 *     drive = a #GDrive.
4567 	 * Returns: %TRUE if @drive supports removable media, %FALSE otherwise.
4568 	 */
4569 	extern(C) int function(GDrive* drive) isMediaRemovable;
4570 	/**
4571 	 *
4572 	 * Params:
4573 	 *     drive = a #GDrive.
4574 	 * Returns: %TRUE if @drive has media, %FALSE otherwise.
4575 	 */
4576 	extern(C) int function(GDrive* drive) hasMedia;
4577 	/**
4578 	 *
4579 	 * Params:
4580 	 *     drive = a #GDrive.
4581 	 * Returns: %TRUE if the @drive is capable of automatically detecting
4582 	 *     media changes, %FALSE otherwise.
4583 	 */
4584 	extern(C) int function(GDrive* drive) isMediaCheckAutomatic;
4585 	/**
4586 	 *
4587 	 * Params:
4588 	 *     drive = a #GDrive.
4589 	 * Returns: %TRUE if the @drive can be ejected, %FALSE otherwise.
4590 	 */
4591 	extern(C) int function(GDrive* drive) canEject;
4592 	/**
4593 	 *
4594 	 * Params:
4595 	 *     drive = a #GDrive.
4596 	 * Returns: %TRUE if the @drive can be polled for media changes,
4597 	 *     %FALSE otherwise.
4598 	 */
4599 	extern(C) int function(GDrive* drive) canPollForMedia;
4600 	/** */
4601 	extern(C) void function(GDrive* drive, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) eject;
4602 	/**
4603 	 *
4604 	 * Params:
4605 	 *     drive = a #GDrive.
4606 	 *     result = a #GAsyncResult.
4607 	 * Returns: %TRUE if the drive has been ejected successfully,
4608 	 *     %FALSE otherwise.
4609 	 *
4610 	 * Throws: GException on failure.
4611 	 */
4612 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) ejectFinish;
4613 	/** */
4614 	extern(C) void function(GDrive* drive, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) pollForMedia;
4615 	/**
4616 	 *
4617 	 * Params:
4618 	 *     drive = a #GDrive.
4619 	 *     result = a #GAsyncResult.
4620 	 * Returns: %TRUE if the drive has been poll_for_mediaed successfully,
4621 	 *     %FALSE otherwise.
4622 	 *
4623 	 * Throws: GException on failure.
4624 	 */
4625 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) pollForMediaFinish;
4626 	/**
4627 	 *
4628 	 * Params:
4629 	 *     drive = a #GDrive
4630 	 *     kind = the kind of identifier to return
4631 	 * Returns: a newly allocated string containing the
4632 	 *     requested identifier, or %NULL if the #GDrive
4633 	 *     doesn't have this kind of identifier.
4634 	 */
4635 	extern(C) char* function(GDrive* drive, const(char)* kind) getIdentifier;
4636 	/**
4637 	 *
4638 	 * Params:
4639 	 *     drive = a #GDrive
4640 	 * Returns: a %NULL-terminated
4641 	 *     array of strings containing kinds of identifiers. Use g_strfreev()
4642 	 *     to free.
4643 	 */
4644 	extern(C) char** function(GDrive* drive) enumerateIdentifiers;
4645 	/**
4646 	 *
4647 	 * Params:
4648 	 *     drive = a #GDrive.
4649 	 * Returns: A value from the #GDriveStartStopType enumeration.
4650 	 */
4651 	extern(C) GDriveStartStopType function(GDrive* drive) getStartStopType;
4652 	/**
4653 	 *
4654 	 * Params:
4655 	 *     drive = a #GDrive.
4656 	 * Returns: %TRUE if the @drive can be started, %FALSE otherwise.
4657 	 */
4658 	extern(C) int function(GDrive* drive) canStart;
4659 	/**
4660 	 *
4661 	 * Params:
4662 	 *     drive = a #GDrive.
4663 	 * Returns: %TRUE if the @drive can be started degraded, %FALSE otherwise.
4664 	 */
4665 	extern(C) int function(GDrive* drive) canStartDegraded;
4666 	/** */
4667 	extern(C) void function(GDrive* drive, GDriveStartFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) start;
4668 	/**
4669 	 *
4670 	 * Params:
4671 	 *     drive = a #GDrive.
4672 	 *     result = a #GAsyncResult.
4673 	 * Returns: %TRUE if the drive has been started successfully,
4674 	 *     %FALSE otherwise.
4675 	 *
4676 	 * Throws: GException on failure.
4677 	 */
4678 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) startFinish;
4679 	/**
4680 	 *
4681 	 * Params:
4682 	 *     drive = a #GDrive.
4683 	 * Returns: %TRUE if the @drive can be stopped, %FALSE otherwise.
4684 	 */
4685 	extern(C) int function(GDrive* drive) canStop;
4686 	/** */
4687 	extern(C) void function(GDrive* drive, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) stop;
4688 	/**
4689 	 *
4690 	 * Params:
4691 	 *     drive = a #GDrive.
4692 	 *     result = a #GAsyncResult.
4693 	 * Returns: %TRUE if the drive has been stopped successfully,
4694 	 *     %FALSE otherwise.
4695 	 *
4696 	 * Throws: GException on failure.
4697 	 */
4698 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) stopFinish;
4699 	/** */
4700 	extern(C) void function(GDrive* drive) stopButton;
4701 	/** */
4702 	extern(C) void function(GDrive* drive, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectWithOperation;
4703 	/**
4704 	 *
4705 	 * Params:
4706 	 *     drive = a #GDrive.
4707 	 *     result = a #GAsyncResult.
4708 	 * Returns: %TRUE if the drive was successfully ejected. %FALSE otherwise.
4709 	 *
4710 	 * Throws: GException on failure.
4711 	 */
4712 	extern(C) int function(GDrive* drive, GAsyncResult* result, GError** err) ejectWithOperationFinish;
4713 	/**
4714 	 *
4715 	 * Params:
4716 	 *     drive = A #GDrive.
4717 	 * Returns: Sorting key for @drive or %NULL if no such key is available.
4718 	 */
4719 	extern(C) const(char)* function(GDrive* drive) getSortKey;
4720 	/**
4721 	 *
4722 	 * Params:
4723 	 *     drive = a #GDrive.
4724 	 * Returns: symbolic #GIcon for the @drive.
4725 	 *     Free the returned object with g_object_unref().
4726 	 */
4727 	extern(C) GIcon* function(GDrive* drive) getSymbolicIcon;
4728 	/**
4729 	 *
4730 	 * Params:
4731 	 *     drive = a #GDrive.
4732 	 * Returns: %TRUE if @drive and/or its media is considered removable, %FALSE otherwise.
4733 	 */
4734 	extern(C) int function(GDrive* drive) isRemovable;
4735 }
4736 
4737 struct GDtlsClientConnection;
4738 
4739 /**
4740  * vtable for a #GDtlsClientConnection implementation.
4741  *
4742  * Since: 2.48
4743  */
4744 struct GDtlsClientConnectionInterface
4745 {
4746 	/**
4747 	 * The parent interface.
4748 	 */
4749 	GTypeInterface gIface;
4750 }
4751 
4752 struct GDtlsConnection;
4753 
4754 /**
4755  * Virtual method table for a #GDtlsConnection implementation.
4756  *
4757  * Since: 2.48
4758  */
4759 struct GDtlsConnectionInterface
4760 {
4761 	/**
4762 	 * The parent interface.
4763 	 */
4764 	GTypeInterface gIface;
4765 	/** */
4766 	extern(C) int function(GDtlsConnection* connection, GTlsCertificate* peerCert, GTlsCertificateFlags errors) acceptCertificate;
4767 	/**
4768 	 *
4769 	 * Params:
4770 	 *     conn = a #GDtlsConnection
4771 	 *     cancellable = a #GCancellable, or %NULL
4772 	 * Returns: success or failure
4773 	 *
4774 	 * Throws: GException on failure.
4775 	 */
4776 	extern(C) int function(GDtlsConnection* conn, GCancellable* cancellable, GError** err) handshake;
4777 	/** */
4778 	extern(C) void function(GDtlsConnection* conn, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) handshakeAsync;
4779 	/**
4780 	 *
4781 	 * Params:
4782 	 *     conn = a #GDtlsConnection
4783 	 *     result = a #GAsyncResult.
4784 	 * Returns: %TRUE on success, %FALSE on failure, in which
4785 	 *     case @error will be set.
4786 	 *
4787 	 * Throws: GException on failure.
4788 	 */
4789 	extern(C) int function(GDtlsConnection* conn, GAsyncResult* result, GError** err) handshakeFinish;
4790 	/**
4791 	 *
4792 	 * Params:
4793 	 *     conn = a #GDtlsConnection
4794 	 *     shutdownRead = %TRUE to stop reception of incoming datagrams
4795 	 *     shutdownWrite = %TRUE to stop sending outgoing datagrams
4796 	 *     cancellable = a #GCancellable, or %NULL
4797 	 * Returns: %TRUE on success, %FALSE otherwise
4798 	 *
4799 	 * Throws: GException on failure.
4800 	 */
4801 	extern(C) int function(GDtlsConnection* conn, int shutdownRead, int shutdownWrite, GCancellable* cancellable, GError** err) shutdown;
4802 	/** */
4803 	extern(C) void function(GDtlsConnection* conn, int shutdownRead, int shutdownWrite, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) shutdownAsync;
4804 	/**
4805 	 *
4806 	 * Params:
4807 	 *     conn = a #GDtlsConnection
4808 	 *     result = a #GAsyncResult
4809 	 * Returns: %TRUE on success, %FALSE on failure, in which
4810 	 *     case @error will be set
4811 	 *
4812 	 * Throws: GException on failure.
4813 	 */
4814 	extern(C) int function(GDtlsConnection* conn, GAsyncResult* result, GError** err) shutdownFinish;
4815 	/** */
4816 	extern(C) void function(GDtlsConnection* conn, char** protocols) setAdvertisedProtocols;
4817 	/**
4818 	 *
4819 	 * Params:
4820 	 *     conn = a #GDtlsConnection
4821 	 * Returns: the negotiated protocol, or %NULL
4822 	 */
4823 	extern(C) const(char)* function(GDtlsConnection* conn) getNegotiatedProtocol;
4824 	/** */
4825 	extern(C) int function(GDtlsConnection* conn, GTlsChannelBindingType type, GByteArray* data, GError** err) getBindingData;
4826 }
4827 
4828 struct GDtlsServerConnection;
4829 
4830 /**
4831  * vtable for a #GDtlsServerConnection implementation.
4832  *
4833  * Since: 2.48
4834  */
4835 struct GDtlsServerConnectionInterface
4836 {
4837 	/**
4838 	 * The parent interface.
4839 	 */
4840 	GTypeInterface gIface;
4841 }
4842 
4843 struct GEmblem;
4844 
4845 struct GEmblemClass;
4846 
4847 struct GEmblemedIcon
4848 {
4849 	GObject parentInstance;
4850 	GEmblemedIconPrivate* priv;
4851 }
4852 
4853 struct GEmblemedIconClass
4854 {
4855 	GObjectClass parentClass;
4856 }
4857 
4858 struct GEmblemedIconPrivate;
4859 
4860 struct GFile;
4861 
4862 /**
4863  * Information about a specific attribute.
4864  */
4865 struct GFileAttributeInfo
4866 {
4867 	/**
4868 	 * the name of the attribute.
4869 	 */
4870 	char* name;
4871 	/**
4872 	 * the #GFileAttributeType type of the attribute.
4873 	 */
4874 	GFileAttributeType type;
4875 	/**
4876 	 * a set of #GFileAttributeInfoFlags.
4877 	 */
4878 	GFileAttributeInfoFlags flags;
4879 }
4880 
4881 struct GFileAttributeInfoList
4882 {
4883 	/**
4884 	 * an array of #GFileAttributeInfos.
4885 	 */
4886 	GFileAttributeInfo* infos;
4887 	/**
4888 	 * the number of values in the array.
4889 	 */
4890 	int nInfos;
4891 }
4892 
4893 struct GFileAttributeMatcher;
4894 
4895 struct GFileDescriptorBased;
4896 
4897 /**
4898  * An interface for file descriptor based io objects.
4899  */
4900 struct GFileDescriptorBasedIface
4901 {
4902 	/**
4903 	 * The parent interface.
4904 	 */
4905 	GTypeInterface gIface;
4906 	/**
4907 	 *
4908 	 * Params:
4909 	 *     fdBased = a #GFileDescriptorBased.
4910 	 * Returns: The file descriptor
4911 	 */
4912 	extern(C) int function(GFileDescriptorBased* fdBased) getFd;
4913 }
4914 
4915 struct GFileEnumerator
4916 {
4917 	GObject parentInstance;
4918 	GFileEnumeratorPrivate* priv;
4919 }
4920 
4921 struct GFileEnumeratorClass
4922 {
4923 	GObjectClass parentClass;
4924 	/**
4925 	 *
4926 	 * Params:
4927 	 *     enumerator = a #GFileEnumerator.
4928 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
4929 	 * Returns: A #GFileInfo or %NULL on error
4930 	 *     or end of enumerator.  Free the returned object with
4931 	 *     g_object_unref() when no longer needed.
4932 	 *
4933 	 * Throws: GException on failure.
4934 	 */
4935 	extern(C) GFileInfo* function(GFileEnumerator* enumerator, GCancellable* cancellable, GError** err) nextFile;
4936 	/** */
4937 	extern(C) int function(GFileEnumerator* enumerator, GCancellable* cancellable, GError** err) closeFn;
4938 	/** */
4939 	extern(C) void function(GFileEnumerator* enumerator, int numFiles, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) nextFilesAsync;
4940 	/**
4941 	 *
4942 	 * Params:
4943 	 *     enumerator = a #GFileEnumerator.
4944 	 *     result = a #GAsyncResult.
4945 	 * Returns: a #GList of #GFileInfos. You must free the list with
4946 	 *     g_list_free() and unref the infos with g_object_unref() when you're
4947 	 *     done with them.
4948 	 *
4949 	 * Throws: GException on failure.
4950 	 */
4951 	extern(C) GList* function(GFileEnumerator* enumerator, GAsyncResult* result, GError** err) nextFilesFinish;
4952 	/** */
4953 	extern(C) void function(GFileEnumerator* enumerator, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
4954 	/**
4955 	 *
4956 	 * Params:
4957 	 *     enumerator = a #GFileEnumerator.
4958 	 *     result = a #GAsyncResult.
4959 	 * Returns: %TRUE if the close operation has finished successfully.
4960 	 *
4961 	 * Throws: GException on failure.
4962 	 */
4963 	extern(C) int function(GFileEnumerator* enumerator, GAsyncResult* result, GError** err) closeFinish;
4964 	/** */
4965 	extern(C) void function() GReserved1;
4966 	/** */
4967 	extern(C) void function() GReserved2;
4968 	/** */
4969 	extern(C) void function() GReserved3;
4970 	/** */
4971 	extern(C) void function() GReserved4;
4972 	/** */
4973 	extern(C) void function() GReserved5;
4974 	/** */
4975 	extern(C) void function() GReserved6;
4976 	/** */
4977 	extern(C) void function() GReserved7;
4978 }
4979 
4980 struct GFileEnumeratorPrivate;
4981 
4982 struct GFileIOStream
4983 {
4984 	GIOStream parentInstance;
4985 	GFileIOStreamPrivate* priv;
4986 }
4987 
4988 struct GFileIOStreamClass
4989 {
4990 	GIOStreamClass parentClass;
4991 	/** */
4992 	extern(C) long function(GFileIOStream* stream) tell;
4993 	/** */
4994 	extern(C) int function(GFileIOStream* stream) canSeek;
4995 	/** */
4996 	extern(C) int function(GFileIOStream* stream, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
4997 	/** */
4998 	extern(C) int function(GFileIOStream* stream) canTruncate;
4999 	/** */
5000 	extern(C) int function(GFileIOStream* stream, long size, GCancellable* cancellable, GError** err) truncateFn;
5001 	/**
5002 	 *
5003 	 * Params:
5004 	 *     stream = a #GFileIOStream.
5005 	 *     attributes = a file attribute query string.
5006 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
5007 	 * Returns: a #GFileInfo for the @stream, or %NULL on error.
5008 	 *
5009 	 * Throws: GException on failure.
5010 	 */
5011 	extern(C) GFileInfo* function(GFileIOStream* stream, const(char)* attributes, GCancellable* cancellable, GError** err) queryInfo;
5012 	/** */
5013 	extern(C) void function(GFileIOStream* stream, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
5014 	/**
5015 	 *
5016 	 * Params:
5017 	 *     stream = a #GFileIOStream.
5018 	 *     result = a #GAsyncResult.
5019 	 * Returns: A #GFileInfo for the finished query.
5020 	 *
5021 	 * Throws: GException on failure.
5022 	 */
5023 	extern(C) GFileInfo* function(GFileIOStream* stream, GAsyncResult* result, GError** err) queryInfoFinish;
5024 	/**
5025 	 *
5026 	 * Params:
5027 	 *     stream = a #GFileIOStream.
5028 	 * Returns: the entity tag for the stream.
5029 	 */
5030 	extern(C) char* function(GFileIOStream* stream) getEtag;
5031 	/** */
5032 	extern(C) void function() GReserved1;
5033 	/** */
5034 	extern(C) void function() GReserved2;
5035 	/** */
5036 	extern(C) void function() GReserved3;
5037 	/** */
5038 	extern(C) void function() GReserved4;
5039 	/** */
5040 	extern(C) void function() GReserved5;
5041 }
5042 
5043 struct GFileIOStreamPrivate;
5044 
5045 struct GFileIcon;
5046 
5047 struct GFileIconClass;
5048 
5049 /**
5050  * An interface for writing VFS file handles.
5051  */
5052 struct GFileIface
5053 {
5054 	/**
5055 	 * The parent interface.
5056 	 */
5057 	GTypeInterface gIface;
5058 	/**
5059 	 *
5060 	 * Params:
5061 	 *     file = input #GFile
5062 	 * Returns: a new #GFile that is a duplicate
5063 	 *     of the given #GFile.
5064 	 */
5065 	extern(C) GFile* function(GFile* file) dup;
5066 	/**
5067 	 *
5068 	 * Params:
5069 	 *     file = #gconstpointer to a #GFile
5070 	 * Returns: 0 if @file is not a valid #GFile, otherwise an
5071 	 *     integer that can be used as hash value for the #GFile.
5072 	 *     This function is intended for easily hashing a #GFile to
5073 	 *     add to a #GHashTable or similar data structure.
5074 	 */
5075 	extern(C) uint function(GFile* file) hash;
5076 	/**
5077 	 *
5078 	 * Params:
5079 	 *     file1 = the first #GFile
5080 	 *     file2 = the second #GFile
5081 	 * Returns: %TRUE if @file1 and @file2 are equal.
5082 	 */
5083 	extern(C) int function(GFile* file1, GFile* file2) equal;
5084 	/**
5085 	 *
5086 	 * Params:
5087 	 *     file = input #GFile
5088 	 * Returns: %TRUE if @file is native
5089 	 */
5090 	extern(C) int function(GFile* file) isNative;
5091 	/**
5092 	 *
5093 	 * Params:
5094 	 *     file = input #GFile
5095 	 *     uriScheme = a string containing a URI scheme
5096 	 * Returns: %TRUE if #GFile's backend supports the
5097 	 *     given URI scheme, %FALSE if URI scheme is %NULL,
5098 	 *     not supported, or #GFile is invalid.
5099 	 */
5100 	extern(C) int function(GFile* file, const(char)* uriScheme) hasUriScheme;
5101 	/**
5102 	 *
5103 	 * Params:
5104 	 *     file = input #GFile
5105 	 * Returns: a string containing the URI scheme for the given
5106 	 *     #GFile or %NULL if the #GFile was constructed with an invalid URI. The
5107 	 *     returned string should be freed with g_free() when no longer needed.
5108 	 */
5109 	extern(C) char* function(GFile* file) getUriScheme;
5110 	/**
5111 	 *
5112 	 * Params:
5113 	 *     file = input #GFile
5114 	 * Returns: string containing the #GFile's
5115 	 *     base name, or %NULL if given #GFile is invalid. The returned string
5116 	 *     should be freed with g_free() when no longer needed.
5117 	 */
5118 	extern(C) char* function(GFile* file) getBasename;
5119 	/**
5120 	 *
5121 	 * Params:
5122 	 *     file = input #GFile
5123 	 * Returns: string containing the #GFile's path,
5124 	 *     or %NULL if no such path exists. The returned string should be freed
5125 	 *     with g_free() when no longer needed.
5126 	 */
5127 	extern(C) char* function(GFile* file) getPath;
5128 	/**
5129 	 *
5130 	 * Params:
5131 	 *     file = input #GFile
5132 	 * Returns: a string containing the #GFile's URI. If the #GFile was constructed
5133 	 *     with an invalid URI, an invalid URI is returned.
5134 	 *     The returned string should be freed with g_free()
5135 	 *     when no longer needed.
5136 	 */
5137 	extern(C) char* function(GFile* file) getUri;
5138 	/**
5139 	 *
5140 	 * Params:
5141 	 *     file = input #GFile
5142 	 * Returns: a string containing the #GFile's parse name.
5143 	 *     The returned string should be freed with g_free()
5144 	 *     when no longer needed.
5145 	 */
5146 	extern(C) char* function(GFile* file) getParseName;
5147 	/**
5148 	 *
5149 	 * Params:
5150 	 *     file = input #GFile
5151 	 * Returns: a #GFile structure to the
5152 	 *     parent of the given #GFile or %NULL if there is no parent. Free
5153 	 *     the returned object with g_object_unref().
5154 	 */
5155 	extern(C) GFile* function(GFile* file) getParent;
5156 	/**
5157 	 *
5158 	 * Params:
5159 	 *     prefix = input #GFile
5160 	 *     file = input #GFile
5161 	 * Returns: %TRUE if the @file's parent, grandparent, etc is @prefix,
5162 	 *     %FALSE otherwise.
5163 	 */
5164 	extern(C) int function(GFile* prefix, GFile* file) prefixMatches;
5165 	/**
5166 	 *
5167 	 * Params:
5168 	 *     parent = input #GFile
5169 	 *     descendant = input #GFile
5170 	 * Returns: string with the relative path from
5171 	 *     @descendant to @parent, or %NULL if @descendant doesn't have @parent as
5172 	 *     prefix. The returned string should be freed with g_free() when
5173 	 *     no longer needed.
5174 	 */
5175 	extern(C) char* function(GFile* parent, GFile* descendant) getRelativePath;
5176 	/**
5177 	 *
5178 	 * Params:
5179 	 *     file = input #GFile
5180 	 *     relativePath = a given relative path string
5181 	 * Returns: a #GFile for the resolved path.
5182 	 */
5183 	extern(C) GFile* function(GFile* file, char* relativePath) resolveRelativePath;
5184 	/**
5185 	 *
5186 	 * Params:
5187 	 *     file = input #GFile
5188 	 *     displayName = string to a possible child
5189 	 * Returns: a #GFile to the specified child, or
5190 	 *     %NULL if the display name couldn't be converted.
5191 	 *     Free the returned object with g_object_unref().
5192 	 *
5193 	 * Throws: GException on failure.
5194 	 */
5195 	extern(C) GFile* function(GFile* file, const(char)* displayName, GError** err) getChildForDisplayName;
5196 	/**
5197 	 *
5198 	 * Params:
5199 	 *     file = input #GFile
5200 	 *     attributes = an attribute query string
5201 	 *     flags = a set of #GFileQueryInfoFlags
5202 	 *     cancellable = optional #GCancellable object,
5203 	 *         %NULL to ignore
5204 	 * Returns: A #GFileEnumerator if successful,
5205 	 *     %NULL on error. Free the returned object with g_object_unref().
5206 	 *
5207 	 * Throws: GException on failure.
5208 	 */
5209 	extern(C) GFileEnumerator* function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) enumerateChildren;
5210 	/** */
5211 	extern(C) void function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) enumerateChildrenAsync;
5212 	/**
5213 	 *
5214 	 * Params:
5215 	 *     file = input #GFile
5216 	 *     res = a #GAsyncResult
5217 	 * Returns: a #GFileEnumerator or %NULL
5218 	 *     if an error occurred.
5219 	 *     Free the returned object with g_object_unref().
5220 	 *
5221 	 * Throws: GException on failure.
5222 	 */
5223 	extern(C) GFileEnumerator* function(GFile* file, GAsyncResult* res, GError** err) enumerateChildrenFinish;
5224 	/**
5225 	 *
5226 	 * Params:
5227 	 *     file = input #GFile
5228 	 *     attributes = an attribute query string
5229 	 *     flags = a set of #GFileQueryInfoFlags
5230 	 *     cancellable = optional #GCancellable object,
5231 	 *         %NULL to ignore
5232 	 * Returns: a #GFileInfo for the given @file, or %NULL
5233 	 *     on error. Free the returned object with g_object_unref().
5234 	 *
5235 	 * Throws: GException on failure.
5236 	 */
5237 	extern(C) GFileInfo* function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) queryInfo;
5238 	/** */
5239 	extern(C) void function(GFile* file, const(char)* attributes, GFileQueryInfoFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
5240 	/**
5241 	 *
5242 	 * Params:
5243 	 *     file = input #GFile
5244 	 *     res = a #GAsyncResult
5245 	 * Returns: #GFileInfo for given @file
5246 	 *     or %NULL on error. Free the returned object with
5247 	 *     g_object_unref().
5248 	 *
5249 	 * Throws: GException on failure.
5250 	 */
5251 	extern(C) GFileInfo* function(GFile* file, GAsyncResult* res, GError** err) queryInfoFinish;
5252 	/**
5253 	 *
5254 	 * Params:
5255 	 *     file = input #GFile
5256 	 *     attributes = an attribute query string
5257 	 *     cancellable = optional #GCancellable object,
5258 	 *         %NULL to ignore
5259 	 * Returns: a #GFileInfo or %NULL if there was an error.
5260 	 *     Free the returned object with g_object_unref().
5261 	 *
5262 	 * Throws: GException on failure.
5263 	 */
5264 	extern(C) GFileInfo* function(GFile* file, const(char)* attributes, GCancellable* cancellable, GError** err) queryFilesystemInfo;
5265 	/** */
5266 	extern(C) void function(GFile* file, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryFilesystemInfoAsync;
5267 	/**
5268 	 *
5269 	 * Params:
5270 	 *     file = input #GFile
5271 	 *     res = a #GAsyncResult
5272 	 * Returns: #GFileInfo for given @file
5273 	 *     or %NULL on error.
5274 	 *     Free the returned object with g_object_unref().
5275 	 *
5276 	 * Throws: GException on failure.
5277 	 */
5278 	extern(C) GFileInfo* function(GFile* file, GAsyncResult* res, GError** err) queryFilesystemInfoFinish;
5279 	/**
5280 	 *
5281 	 * Params:
5282 	 *     file = input #GFile
5283 	 *     cancellable = optional #GCancellable object,
5284 	 *         %NULL to ignore
5285 	 * Returns: a #GMount where the @file is located
5286 	 *     or %NULL on error.
5287 	 *     Free the returned object with g_object_unref().
5288 	 *
5289 	 * Throws: GException on failure.
5290 	 */
5291 	extern(C) GMount* function(GFile* file, GCancellable* cancellable, GError** err) findEnclosingMount;
5292 	/** */
5293 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) findEnclosingMountAsync;
5294 	/**
5295 	 *
5296 	 * Params:
5297 	 *     file = a #GFile
5298 	 *     res = a #GAsyncResult
5299 	 * Returns: #GMount for given @file or %NULL on error.
5300 	 *     Free the returned object with g_object_unref().
5301 	 *
5302 	 * Throws: GException on failure.
5303 	 */
5304 	extern(C) GMount* function(GFile* file, GAsyncResult* res, GError** err) findEnclosingMountFinish;
5305 	/**
5306 	 *
5307 	 * Params:
5308 	 *     file = input #GFile
5309 	 *     displayName = a string
5310 	 *     cancellable = optional #GCancellable object,
5311 	 *         %NULL to ignore
5312 	 * Returns: a #GFile specifying what @file was renamed to,
5313 	 *     or %NULL if there was an error.
5314 	 *     Free the returned object with g_object_unref().
5315 	 *
5316 	 * Throws: GException on failure.
5317 	 */
5318 	extern(C) GFile* function(GFile* file, const(char)* displayName, GCancellable* cancellable, GError** err) setDisplayName;
5319 	/** */
5320 	extern(C) void function(GFile* file, const(char)* displayName, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) setDisplayNameAsync;
5321 	/**
5322 	 *
5323 	 * Params:
5324 	 *     file = input #GFile
5325 	 *     res = a #GAsyncResult
5326 	 * Returns: a #GFile or %NULL on error.
5327 	 *     Free the returned object with g_object_unref().
5328 	 *
5329 	 * Throws: GException on failure.
5330 	 */
5331 	extern(C) GFile* function(GFile* file, GAsyncResult* res, GError** err) setDisplayNameFinish;
5332 	/**
5333 	 *
5334 	 * Params:
5335 	 *     file = input #GFile
5336 	 *     cancellable = optional #GCancellable object,
5337 	 *         %NULL to ignore
5338 	 * Returns: a #GFileAttributeInfoList describing the settable attributes.
5339 	 *     When you are done with it, release it with
5340 	 *     g_file_attribute_info_list_unref()
5341 	 *
5342 	 * Throws: GException on failure.
5343 	 */
5344 	extern(C) GFileAttributeInfoList* function(GFile* file, GCancellable* cancellable, GError** err) querySettableAttributes;
5345 	/** */
5346 	extern(C) void function() QuerySettableAttributesAsync;
5347 	/** */
5348 	extern(C) void function() QuerySettableAttributesFinish;
5349 	/**
5350 	 *
5351 	 * Params:
5352 	 *     file = input #GFile
5353 	 *     cancellable = optional #GCancellable object,
5354 	 *         %NULL to ignore
5355 	 * Returns: a #GFileAttributeInfoList describing the writable namespaces.
5356 	 *     When you are done with it, release it with
5357 	 *     g_file_attribute_info_list_unref()
5358 	 *
5359 	 * Throws: GException on failure.
5360 	 */
5361 	extern(C) GFileAttributeInfoList* function(GFile* file, GCancellable* cancellable, GError** err) queryWritableNamespaces;
5362 	/** */
5363 	extern(C) void function() QueryWritableNamespacesAsync;
5364 	/** */
5365 	extern(C) void function() QueryWritableNamespacesFinish;
5366 	/**
5367 	 *
5368 	 * Params:
5369 	 *     file = input #GFile
5370 	 *     attribute = a string containing the attribute's name
5371 	 *     type = The type of the attribute
5372 	 *     valueP = a pointer to the value (or the pointer
5373 	 *         itself if the type is a pointer type)
5374 	 *     flags = a set of #GFileQueryInfoFlags
5375 	 *     cancellable = optional #GCancellable object,
5376 	 *         %NULL to ignore
5377 	 * Returns: %TRUE if the attribute was set, %FALSE otherwise.
5378 	 *
5379 	 * Throws: GException on failure.
5380 	 */
5381 	extern(C) int function(GFile* file, const(char)* attribute, GFileAttributeType type, void* valueP, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) setAttribute;
5382 	/**
5383 	 *
5384 	 * Params:
5385 	 *     file = input #GFile
5386 	 *     info = a #GFileInfo
5387 	 *     flags = #GFileQueryInfoFlags
5388 	 *     cancellable = optional #GCancellable object,
5389 	 *         %NULL to ignore
5390 	 * Returns: %FALSE if there was any error, %TRUE otherwise.
5391 	 *
5392 	 * Throws: GException on failure.
5393 	 */
5394 	extern(C) int function(GFile* file, GFileInfo* info, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) setAttributesFromInfo;
5395 	/** */
5396 	extern(C) void function(GFile* file, GFileInfo* info, GFileQueryInfoFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) setAttributesAsync;
5397 	/**
5398 	 *
5399 	 * Params:
5400 	 *     file = input #GFile
5401 	 *     result = a #GAsyncResult
5402 	 *     info = a #GFileInfo
5403 	 * Returns: %TRUE if the attributes were set correctly, %FALSE otherwise.
5404 	 *
5405 	 * Throws: GException on failure.
5406 	 */
5407 	extern(C) int function(GFile* file, GAsyncResult* result, GFileInfo** info, GError** err) setAttributesFinish;
5408 	/**
5409 	 *
5410 	 * Params:
5411 	 *     file = #GFile to read
5412 	 *     cancellable = a #GCancellable
5413 	 * Returns: #GFileInputStream or %NULL on error.
5414 	 *     Free the returned object with g_object_unref().
5415 	 *
5416 	 * Throws: GException on failure.
5417 	 */
5418 	extern(C) GFileInputStream* function(GFile* file, GCancellable* cancellable, GError** err) readFn;
5419 	/** */
5420 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) readAsync;
5421 	/**
5422 	 *
5423 	 * Params:
5424 	 *     file = input #GFile
5425 	 *     res = a #GAsyncResult
5426 	 * Returns: a #GFileInputStream or %NULL on error.
5427 	 *     Free the returned object with g_object_unref().
5428 	 *
5429 	 * Throws: GException on failure.
5430 	 */
5431 	extern(C) GFileInputStream* function(GFile* file, GAsyncResult* res, GError** err) readFinish;
5432 	/**
5433 	 *
5434 	 * Params:
5435 	 *     file = input #GFile
5436 	 *     flags = a set of #GFileCreateFlags
5437 	 *     cancellable = optional #GCancellable object,
5438 	 *         %NULL to ignore
5439 	 * Returns: a #GFileOutputStream, or %NULL on error.
5440 	 *     Free the returned object with g_object_unref().
5441 	 *
5442 	 * Throws: GException on failure.
5443 	 */
5444 	extern(C) GFileOutputStream* function(GFile* file, GFileCreateFlags flags, GCancellable* cancellable, GError** err) appendTo;
5445 	/** */
5446 	extern(C) void function(GFile* file, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) appendToAsync;
5447 	/**
5448 	 *
5449 	 * Params:
5450 	 *     file = input #GFile
5451 	 *     res = #GAsyncResult
5452 	 * Returns: a valid #GFileOutputStream
5453 	 *     or %NULL on error.
5454 	 *     Free the returned object with g_object_unref().
5455 	 *
5456 	 * Throws: GException on failure.
5457 	 */
5458 	extern(C) GFileOutputStream* function(GFile* file, GAsyncResult* res, GError** err) appendToFinish;
5459 	/**
5460 	 *
5461 	 * Params:
5462 	 *     file = input #GFile
5463 	 *     flags = a set of #GFileCreateFlags
5464 	 *     cancellable = optional #GCancellable object,
5465 	 *         %NULL to ignore
5466 	 * Returns: a #GFileOutputStream for the newly created
5467 	 *     file, or %NULL on error.
5468 	 *     Free the returned object with g_object_unref().
5469 	 *
5470 	 * Throws: GException on failure.
5471 	 */
5472 	extern(C) GFileOutputStream* function(GFile* file, GFileCreateFlags flags, GCancellable* cancellable, GError** err) create;
5473 	/** */
5474 	extern(C) void function(GFile* file, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) createAsync;
5475 	/**
5476 	 *
5477 	 * Params:
5478 	 *     file = input #GFile
5479 	 *     res = a #GAsyncResult
5480 	 * Returns: a #GFileOutputStream or %NULL on error.
5481 	 *     Free the returned object with g_object_unref().
5482 	 *
5483 	 * Throws: GException on failure.
5484 	 */
5485 	extern(C) GFileOutputStream* function(GFile* file, GAsyncResult* res, GError** err) createFinish;
5486 	/**
5487 	 *
5488 	 * Params:
5489 	 *     file = input #GFile
5490 	 *     etag = an optional [entity tag][gfile-etag]
5491 	 *         for the current #GFile, or #NULL to ignore
5492 	 *     makeBackup = %TRUE if a backup should be created
5493 	 *     flags = a set of #GFileCreateFlags
5494 	 *     cancellable = optional #GCancellable object,
5495 	 *         %NULL to ignore
5496 	 * Returns: a #GFileOutputStream or %NULL on error.
5497 	 *     Free the returned object with g_object_unref().
5498 	 *
5499 	 * Throws: GException on failure.
5500 	 */
5501 	extern(C) GFileOutputStream* function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, GCancellable* cancellable, GError** err) replace;
5502 	/** */
5503 	extern(C) void function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) replaceAsync;
5504 	/**
5505 	 *
5506 	 * Params:
5507 	 *     file = input #GFile
5508 	 *     res = a #GAsyncResult
5509 	 * Returns: a #GFileOutputStream, or %NULL on error.
5510 	 *     Free the returned object with g_object_unref().
5511 	 *
5512 	 * Throws: GException on failure.
5513 	 */
5514 	extern(C) GFileOutputStream* function(GFile* file, GAsyncResult* res, GError** err) replaceFinish;
5515 	/**
5516 	 *
5517 	 * Params:
5518 	 *     file = input #GFile
5519 	 *     cancellable = optional #GCancellable object,
5520 	 *         %NULL to ignore
5521 	 * Returns: %TRUE if the file was deleted. %FALSE otherwise.
5522 	 *
5523 	 * Throws: GException on failure.
5524 	 */
5525 	extern(C) int function(GFile* file, GCancellable* cancellable, GError** err) deleteFile;
5526 	/** */
5527 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) deleteFileAsync;
5528 	/**
5529 	 *
5530 	 * Params:
5531 	 *     file = input #GFile
5532 	 *     result = a #GAsyncResult
5533 	 * Returns: %TRUE if the file was deleted. %FALSE otherwise.
5534 	 *
5535 	 * Throws: GException on failure.
5536 	 */
5537 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) deleteFileFinish;
5538 	/**
5539 	 *
5540 	 * Params:
5541 	 *     file = #GFile to send to trash
5542 	 *     cancellable = optional #GCancellable object,
5543 	 *         %NULL to ignore
5544 	 * Returns: %TRUE on successful trash, %FALSE otherwise.
5545 	 *
5546 	 * Throws: GException on failure.
5547 	 */
5548 	extern(C) int function(GFile* file, GCancellable* cancellable, GError** err) trash;
5549 	/** */
5550 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) trashAsync;
5551 	/**
5552 	 *
5553 	 * Params:
5554 	 *     file = input #GFile
5555 	 *     result = a #GAsyncResult
5556 	 * Returns: %TRUE on successful trash, %FALSE otherwise.
5557 	 *
5558 	 * Throws: GException on failure.
5559 	 */
5560 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) trashFinish;
5561 	/**
5562 	 *
5563 	 * Params:
5564 	 *     file = input #GFile
5565 	 *     cancellable = optional #GCancellable object,
5566 	 *         %NULL to ignore
5567 	 * Returns: %TRUE on successful creation, %FALSE otherwise.
5568 	 *
5569 	 * Throws: GException on failure.
5570 	 */
5571 	extern(C) int function(GFile* file, GCancellable* cancellable, GError** err) makeDirectory;
5572 	/** */
5573 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) makeDirectoryAsync;
5574 	/**
5575 	 *
5576 	 * Params:
5577 	 *     file = input #GFile
5578 	 *     result = a #GAsyncResult
5579 	 * Returns: %TRUE on successful directory creation, %FALSE otherwise.
5580 	 *
5581 	 * Throws: GException on failure.
5582 	 */
5583 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) makeDirectoryFinish;
5584 	/**
5585 	 *
5586 	 * Params:
5587 	 *     file = a #GFile with the name of the symlink to create
5588 	 *     symlinkValue = a string with the path for the target
5589 	 *         of the new symlink
5590 	 *     cancellable = optional #GCancellable object,
5591 	 *         %NULL to ignore
5592 	 * Returns: %TRUE on the creation of a new symlink, %FALSE otherwise.
5593 	 *
5594 	 * Throws: GException on failure.
5595 	 */
5596 	extern(C) int function(GFile* file, char* symlinkValue, GCancellable* cancellable, GError** err) makeSymbolicLink;
5597 	/** */
5598 	extern(C) void function() MakeSymbolicLinkAsync;
5599 	/** */
5600 	extern(C) void function() MakeSymbolicLinkFinish;
5601 	/**
5602 	 *
5603 	 * Params:
5604 	 *     source = input #GFile
5605 	 *     destination = destination #GFile
5606 	 *     flags = set of #GFileCopyFlags
5607 	 *     cancellable = optional #GCancellable object,
5608 	 *         %NULL to ignore
5609 	 *     progressCallback = function to callback with
5610 	 *         progress information, or %NULL if progress information is not needed
5611 	 *     progressCallbackData = user data to pass to @progress_callback
5612 	 * Returns: %TRUE on success, %FALSE otherwise.
5613 	 *
5614 	 * Throws: GException on failure.
5615 	 */
5616 	extern(C) int function(GFile* source, GFile* destination, GFileCopyFlags flags, GCancellable* cancellable, GFileProgressCallback progressCallback, void* progressCallbackData, GError** err) copy;
5617 	/** */
5618 	extern(C) void function(GFile* source, GFile* destination, GFileCopyFlags flags, int ioPriority, GCancellable* cancellable, GFileProgressCallback progressCallback, void* progressCallbackData, GAsyncReadyCallback callback, void* userData) copyAsync;
5619 	/**
5620 	 *
5621 	 * Params:
5622 	 *     file = input #GFile
5623 	 *     res = a #GAsyncResult
5624 	 * Returns: a %TRUE on success, %FALSE on error.
5625 	 *
5626 	 * Throws: GException on failure.
5627 	 */
5628 	extern(C) int function(GFile* file, GAsyncResult* res, GError** err) copyFinish;
5629 	/**
5630 	 *
5631 	 * Params:
5632 	 *     source = #GFile pointing to the source location
5633 	 *     destination = #GFile pointing to the destination location
5634 	 *     flags = set of #GFileCopyFlags
5635 	 *     cancellable = optional #GCancellable object,
5636 	 *         %NULL to ignore
5637 	 *     progressCallback = #GFileProgressCallback
5638 	 *         function for updates
5639 	 *     progressCallbackData = gpointer to user data for
5640 	 *         the callback function
5641 	 * Returns: %TRUE on successful move, %FALSE otherwise.
5642 	 *
5643 	 * Throws: GException on failure.
5644 	 */
5645 	extern(C) int function(GFile* source, GFile* destination, GFileCopyFlags flags, GCancellable* cancellable, GFileProgressCallback progressCallback, void* progressCallbackData, GError** err) move;
5646 	/** */
5647 	extern(C) void function(GFile* source, GFile* destination, GFileCopyFlags flags, int ioPriority, GCancellable* cancellable, GFileProgressCallback progressCallback, void* progressCallbackData, GAsyncReadyCallback callback, void* userData) moveAsync;
5648 	/**
5649 	 *
5650 	 * Params:
5651 	 *     file = input source #GFile
5652 	 *     result = a #GAsyncResult
5653 	 * Returns: %TRUE on successful file move, %FALSE otherwise.
5654 	 *
5655 	 * Throws: GException on failure.
5656 	 */
5657 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) moveFinish;
5658 	/** */
5659 	extern(C) void function(GFile* file, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) mountMountable;
5660 	/**
5661 	 *
5662 	 * Params:
5663 	 *     file = input #GFile
5664 	 *     result = a #GAsyncResult
5665 	 * Returns: a #GFile or %NULL on error.
5666 	 *     Free the returned object with g_object_unref().
5667 	 *
5668 	 * Throws: GException on failure.
5669 	 */
5670 	extern(C) GFile* function(GFile* file, GAsyncResult* result, GError** err) mountMountableFinish;
5671 	/** */
5672 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmountMountable;
5673 	/**
5674 	 *
5675 	 * Params:
5676 	 *     file = input #GFile
5677 	 *     result = a #GAsyncResult
5678 	 * Returns: %TRUE if the operation finished successfully.
5679 	 *     %FALSE otherwise.
5680 	 *
5681 	 * Throws: GException on failure.
5682 	 */
5683 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) unmountMountableFinish;
5684 	/** */
5685 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectMountable;
5686 	/**
5687 	 *
5688 	 * Params:
5689 	 *     file = input #GFile
5690 	 *     result = a #GAsyncResult
5691 	 * Returns: %TRUE if the @file was ejected successfully.
5692 	 *     %FALSE otherwise.
5693 	 *
5694 	 * Throws: GException on failure.
5695 	 */
5696 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) ejectMountableFinish;
5697 	/** */
5698 	extern(C) void function(GFile* location, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) mountEnclosingVolume;
5699 	/**
5700 	 *
5701 	 * Params:
5702 	 *     location = input #GFile
5703 	 *     result = a #GAsyncResult
5704 	 * Returns: %TRUE if successful. If an error has occurred,
5705 	 *     this function will return %FALSE and set @error
5706 	 *     appropriately if present.
5707 	 *
5708 	 * Throws: GException on failure.
5709 	 */
5710 	extern(C) int function(GFile* location, GAsyncResult* result, GError** err) mountEnclosingVolumeFinish;
5711 	/**
5712 	 *
5713 	 * Params:
5714 	 *     file = input #GFile
5715 	 *     flags = a set of #GFileMonitorFlags
5716 	 *     cancellable = optional #GCancellable object,
5717 	 *         %NULL to ignore
5718 	 * Returns: a #GFileMonitor for the given @file,
5719 	 *     or %NULL on error.
5720 	 *     Free the returned object with g_object_unref().
5721 	 *
5722 	 * Throws: GException on failure.
5723 	 */
5724 	extern(C) GFileMonitor* function(GFile* file, GFileMonitorFlags flags, GCancellable* cancellable, GError** err) monitorDir;
5725 	/**
5726 	 *
5727 	 * Params:
5728 	 *     file = input #GFile
5729 	 *     flags = a set of #GFileMonitorFlags
5730 	 *     cancellable = optional #GCancellable object,
5731 	 *         %NULL to ignore
5732 	 * Returns: a #GFileMonitor for the given @file,
5733 	 *     or %NULL on error.
5734 	 *     Free the returned object with g_object_unref().
5735 	 *
5736 	 * Throws: GException on failure.
5737 	 */
5738 	extern(C) GFileMonitor* function(GFile* file, GFileMonitorFlags flags, GCancellable* cancellable, GError** err) monitorFile;
5739 	/**
5740 	 *
5741 	 * Params:
5742 	 *     file = #GFile to open
5743 	 *     cancellable = a #GCancellable
5744 	 * Returns: #GFileIOStream or %NULL on error.
5745 	 *     Free the returned object with g_object_unref().
5746 	 *
5747 	 * Throws: GException on failure.
5748 	 */
5749 	extern(C) GFileIOStream* function(GFile* file, GCancellable* cancellable, GError** err) openReadwrite;
5750 	/** */
5751 	extern(C) void function(GFile* file, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) openReadwriteAsync;
5752 	/**
5753 	 *
5754 	 * Params:
5755 	 *     file = input #GFile
5756 	 *     res = a #GAsyncResult
5757 	 * Returns: a #GFileIOStream or %NULL on error.
5758 	 *     Free the returned object with g_object_unref().
5759 	 *
5760 	 * Throws: GException on failure.
5761 	 */
5762 	extern(C) GFileIOStream* function(GFile* file, GAsyncResult* res, GError** err) openReadwriteFinish;
5763 	/**
5764 	 *
5765 	 * Params:
5766 	 *     file = a #GFile
5767 	 *     flags = a set of #GFileCreateFlags
5768 	 *     cancellable = optional #GCancellable object,
5769 	 *         %NULL to ignore
5770 	 * Returns: a #GFileIOStream for the newly created
5771 	 *     file, or %NULL on error.
5772 	 *     Free the returned object with g_object_unref().
5773 	 *
5774 	 * Throws: GException on failure.
5775 	 */
5776 	extern(C) GFileIOStream* function(GFile* file, GFileCreateFlags flags, GCancellable* cancellable, GError** err) createReadwrite;
5777 	/** */
5778 	extern(C) void function(GFile* file, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) createReadwriteAsync;
5779 	/**
5780 	 *
5781 	 * Params:
5782 	 *     file = input #GFile
5783 	 *     res = a #GAsyncResult
5784 	 * Returns: a #GFileIOStream or %NULL on error.
5785 	 *     Free the returned object with g_object_unref().
5786 	 *
5787 	 * Throws: GException on failure.
5788 	 */
5789 	extern(C) GFileIOStream* function(GFile* file, GAsyncResult* res, GError** err) createReadwriteFinish;
5790 	/**
5791 	 *
5792 	 * Params:
5793 	 *     file = a #GFile
5794 	 *     etag = an optional [entity tag][gfile-etag]
5795 	 *         for the current #GFile, or #NULL to ignore
5796 	 *     makeBackup = %TRUE if a backup should be created
5797 	 *     flags = a set of #GFileCreateFlags
5798 	 *     cancellable = optional #GCancellable object,
5799 	 *         %NULL to ignore
5800 	 * Returns: a #GFileIOStream or %NULL on error.
5801 	 *     Free the returned object with g_object_unref().
5802 	 *
5803 	 * Throws: GException on failure.
5804 	 */
5805 	extern(C) GFileIOStream* function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, GCancellable* cancellable, GError** err) replaceReadwrite;
5806 	/** */
5807 	extern(C) void function(GFile* file, const(char)* etag, int makeBackup, GFileCreateFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) replaceReadwriteAsync;
5808 	/**
5809 	 *
5810 	 * Params:
5811 	 *     file = input #GFile
5812 	 *     res = a #GAsyncResult
5813 	 * Returns: a #GFileIOStream, or %NULL on error.
5814 	 *     Free the returned object with g_object_unref().
5815 	 *
5816 	 * Throws: GException on failure.
5817 	 */
5818 	extern(C) GFileIOStream* function(GFile* file, GAsyncResult* res, GError** err) replaceReadwriteFinish;
5819 	/** */
5820 	extern(C) void function(GFile* file, GDriveStartFlags flags, GMountOperation* startOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) startMountable;
5821 	/**
5822 	 *
5823 	 * Params:
5824 	 *     file = input #GFile
5825 	 *     result = a #GAsyncResult
5826 	 * Returns: %TRUE if the operation finished successfully. %FALSE
5827 	 *     otherwise.
5828 	 *
5829 	 * Throws: GException on failure.
5830 	 */
5831 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) startMountableFinish;
5832 	/** */
5833 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) stopMountable;
5834 	/**
5835 	 *
5836 	 * Params:
5837 	 *     file = input #GFile
5838 	 *     result = a #GAsyncResult
5839 	 * Returns: %TRUE if the operation finished successfully.
5840 	 *     %FALSE otherwise.
5841 	 *
5842 	 * Throws: GException on failure.
5843 	 */
5844 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) stopMountableFinish;
5845 	/**
5846 	 * a boolean that indicates whether the #GFile implementation supports thread-default contexts. Since 2.22.
5847 	 */
5848 	bool supportsThreadContexts;
5849 	/** */
5850 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmountMountableWithOperation;
5851 	/**
5852 	 *
5853 	 * Params:
5854 	 *     file = input #GFile
5855 	 *     result = a #GAsyncResult
5856 	 * Returns: %TRUE if the operation finished successfully.
5857 	 *     %FALSE otherwise.
5858 	 *
5859 	 * Throws: GException on failure.
5860 	 */
5861 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) unmountMountableWithOperationFinish;
5862 	/** */
5863 	extern(C) void function(GFile* file, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectMountableWithOperation;
5864 	/**
5865 	 *
5866 	 * Params:
5867 	 *     file = input #GFile
5868 	 *     result = a #GAsyncResult
5869 	 * Returns: %TRUE if the @file was ejected successfully.
5870 	 *     %FALSE otherwise.
5871 	 *
5872 	 * Throws: GException on failure.
5873 	 */
5874 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) ejectMountableWithOperationFinish;
5875 	/** */
5876 	extern(C) void function(GFile* file, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) pollMountable;
5877 	/**
5878 	 *
5879 	 * Params:
5880 	 *     file = input #GFile
5881 	 *     result = a #GAsyncResult
5882 	 * Returns: %TRUE if the operation finished successfully. %FALSE
5883 	 *     otherwise.
5884 	 *
5885 	 * Throws: GException on failure.
5886 	 */
5887 	extern(C) int function(GFile* file, GAsyncResult* result, GError** err) pollMountableFinish;
5888 	/**
5889 	 *
5890 	 * Params:
5891 	 *     file = a #GFile
5892 	 *     flags = #GFileMeasureFlags
5893 	 *     cancellable = optional #GCancellable
5894 	 *     progressCallback = a #GFileMeasureProgressCallback
5895 	 *     progressData = user_data for @progress_callback
5896 	 *     diskUsage = the number of bytes of disk space used
5897 	 *     numDirs = the number of directories encountered
5898 	 *     numFiles = the number of non-directories encountered
5899 	 * Returns: %TRUE if successful, with the out parameters set.
5900 	 *     %FALSE otherwise, with @error set.
5901 	 *
5902 	 * Throws: GException on failure.
5903 	 */
5904 	extern(C) int function(GFile* file, GFileMeasureFlags flags, GCancellable* cancellable, GFileMeasureProgressCallback progressCallback, void* progressData, ulong* diskUsage, ulong* numDirs, ulong* numFiles, GError** err) measureDiskUsage;
5905 	/** */
5906 	extern(C) void function(GFile* file, GFileMeasureFlags flags, int ioPriority, GCancellable* cancellable, GFileMeasureProgressCallback progressCallback, void* progressData, GAsyncReadyCallback callback, void* userData) measureDiskUsageAsync;
5907 	/**
5908 	 *
5909 	 * Params:
5910 	 *     file = a #GFile
5911 	 *     result = the #GAsyncResult passed to your #GAsyncReadyCallback
5912 	 *     diskUsage = the number of bytes of disk space used
5913 	 *     numDirs = the number of directories encountered
5914 	 *     numFiles = the number of non-directories encountered
5915 	 * Returns: %TRUE if successful, with the out parameters set.
5916 	 *     %FALSE otherwise, with @error set.
5917 	 *
5918 	 * Throws: GException on failure.
5919 	 */
5920 	extern(C) int function(GFile* file, GAsyncResult* result, ulong* diskUsage, ulong* numDirs, ulong* numFiles, GError** err) measureDiskUsageFinish;
5921 }
5922 
5923 struct GFileInfo;
5924 
5925 struct GFileInfoClass;
5926 
5927 struct GFileInputStream
5928 {
5929 	GInputStream parentInstance;
5930 	GFileInputStreamPrivate* priv;
5931 }
5932 
5933 struct GFileInputStreamClass
5934 {
5935 	GInputStreamClass parentClass;
5936 	/** */
5937 	extern(C) long function(GFileInputStream* stream) tell;
5938 	/** */
5939 	extern(C) int function(GFileInputStream* stream) canSeek;
5940 	/** */
5941 	extern(C) int function(GFileInputStream* stream, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
5942 	/**
5943 	 *
5944 	 * Params:
5945 	 *     stream = a #GFileInputStream.
5946 	 *     attributes = a file attribute query string.
5947 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
5948 	 * Returns: a #GFileInfo, or %NULL on error.
5949 	 *
5950 	 * Throws: GException on failure.
5951 	 */
5952 	extern(C) GFileInfo* function(GFileInputStream* stream, const(char)* attributes, GCancellable* cancellable, GError** err) queryInfo;
5953 	/** */
5954 	extern(C) void function(GFileInputStream* stream, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
5955 	/**
5956 	 *
5957 	 * Params:
5958 	 *     stream = a #GFileInputStream.
5959 	 *     result = a #GAsyncResult.
5960 	 * Returns: #GFileInfo.
5961 	 *
5962 	 * Throws: GException on failure.
5963 	 */
5964 	extern(C) GFileInfo* function(GFileInputStream* stream, GAsyncResult* result, GError** err) queryInfoFinish;
5965 	/** */
5966 	extern(C) void function() GReserved1;
5967 	/** */
5968 	extern(C) void function() GReserved2;
5969 	/** */
5970 	extern(C) void function() GReserved3;
5971 	/** */
5972 	extern(C) void function() GReserved4;
5973 	/** */
5974 	extern(C) void function() GReserved5;
5975 }
5976 
5977 struct GFileInputStreamPrivate;
5978 
5979 struct GFileMonitor
5980 {
5981 	GObject parentInstance;
5982 	GFileMonitorPrivate* priv;
5983 }
5984 
5985 struct GFileMonitorClass
5986 {
5987 	GObjectClass parentClass;
5988 	/** */
5989 	extern(C) void function(GFileMonitor* monitor, GFile* file, GFile* otherFile, GFileMonitorEvent eventType) changed;
5990 	/**
5991 	 *
5992 	 * Params:
5993 	 *     monitor = a #GFileMonitor.
5994 	 * Returns: always %TRUE
5995 	 */
5996 	extern(C) int function(GFileMonitor* monitor) cancel;
5997 	/** */
5998 	extern(C) void function() GReserved1;
5999 	/** */
6000 	extern(C) void function() GReserved2;
6001 	/** */
6002 	extern(C) void function() GReserved3;
6003 	/** */
6004 	extern(C) void function() GReserved4;
6005 	/** */
6006 	extern(C) void function() GReserved5;
6007 }
6008 
6009 struct GFileMonitorPrivate;
6010 
6011 struct GFileOutputStream
6012 {
6013 	GOutputStream parentInstance;
6014 	GFileOutputStreamPrivate* priv;
6015 }
6016 
6017 struct GFileOutputStreamClass
6018 {
6019 	GOutputStreamClass parentClass;
6020 	/** */
6021 	extern(C) long function(GFileOutputStream* stream) tell;
6022 	/** */
6023 	extern(C) int function(GFileOutputStream* stream) canSeek;
6024 	/** */
6025 	extern(C) int function(GFileOutputStream* stream, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
6026 	/** */
6027 	extern(C) int function(GFileOutputStream* stream) canTruncate;
6028 	/** */
6029 	extern(C) int function(GFileOutputStream* stream, long size, GCancellable* cancellable, GError** err) truncateFn;
6030 	/**
6031 	 *
6032 	 * Params:
6033 	 *     stream = a #GFileOutputStream.
6034 	 *     attributes = a file attribute query string.
6035 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
6036 	 * Returns: a #GFileInfo for the @stream, or %NULL on error.
6037 	 *
6038 	 * Throws: GException on failure.
6039 	 */
6040 	extern(C) GFileInfo* function(GFileOutputStream* stream, const(char)* attributes, GCancellable* cancellable, GError** err) queryInfo;
6041 	/** */
6042 	extern(C) void function(GFileOutputStream* stream, const(char)* attributes, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) queryInfoAsync;
6043 	/**
6044 	 *
6045 	 * Params:
6046 	 *     stream = a #GFileOutputStream.
6047 	 *     result = a #GAsyncResult.
6048 	 * Returns: A #GFileInfo for the finished query.
6049 	 *
6050 	 * Throws: GException on failure.
6051 	 */
6052 	extern(C) GFileInfo* function(GFileOutputStream* stream, GAsyncResult* result, GError** err) queryInfoFinish;
6053 	/**
6054 	 *
6055 	 * Params:
6056 	 *     stream = a #GFileOutputStream.
6057 	 * Returns: the entity tag for the stream.
6058 	 */
6059 	extern(C) char* function(GFileOutputStream* stream) getEtag;
6060 	/** */
6061 	extern(C) void function() GReserved1;
6062 	/** */
6063 	extern(C) void function() GReserved2;
6064 	/** */
6065 	extern(C) void function() GReserved3;
6066 	/** */
6067 	extern(C) void function() GReserved4;
6068 	/** */
6069 	extern(C) void function() GReserved5;
6070 }
6071 
6072 struct GFileOutputStreamPrivate;
6073 
6074 struct GFilenameCompleter;
6075 
6076 struct GFilenameCompleterClass
6077 {
6078 	GObjectClass parentClass;
6079 	/** */
6080 	extern(C) void function(GFilenameCompleter* filenameCompleter) gotCompletionData;
6081 	/** */
6082 	extern(C) void function() GReserved1;
6083 	/** */
6084 	extern(C) void function() GReserved2;
6085 	/** */
6086 	extern(C) void function() GReserved3;
6087 }
6088 
6089 struct GFilterInputStream
6090 {
6091 	GInputStream parentInstance;
6092 	GInputStream* baseStream;
6093 }
6094 
6095 struct GFilterInputStreamClass
6096 {
6097 	GInputStreamClass parentClass;
6098 	/** */
6099 	extern(C) void function() GReserved1;
6100 	/** */
6101 	extern(C) void function() GReserved2;
6102 	/** */
6103 	extern(C) void function() GReserved3;
6104 }
6105 
6106 struct GFilterOutputStream
6107 {
6108 	GOutputStream parentInstance;
6109 	GOutputStream* baseStream;
6110 }
6111 
6112 struct GFilterOutputStreamClass
6113 {
6114 	GOutputStreamClass parentClass;
6115 	/** */
6116 	extern(C) void function() GReserved1;
6117 	/** */
6118 	extern(C) void function() GReserved2;
6119 	/** */
6120 	extern(C) void function() GReserved3;
6121 }
6122 
6123 struct GIOExtension;
6124 
6125 struct GIOExtensionPoint;
6126 
6127 struct GIOModule;
6128 
6129 struct GIOModuleClass;
6130 
6131 struct GIOModuleScope;
6132 
6133 struct GIOSchedulerJob;
6134 
6135 struct GIOStream
6136 {
6137 	GObject parentInstance;
6138 	GIOStreamPrivate* priv;
6139 }
6140 
6141 struct GIOStreamAdapter;
6142 
6143 struct GIOStreamClass
6144 {
6145 	GObjectClass parentClass;
6146 	/**
6147 	 *
6148 	 * Params:
6149 	 *     stream = a #GIOStream
6150 	 * Returns: a #GInputStream, owned by the #GIOStream.
6151 	 *     Do not free.
6152 	 */
6153 	extern(C) GInputStream* function(GIOStream* stream) getInputStream;
6154 	/**
6155 	 *
6156 	 * Params:
6157 	 *     stream = a #GIOStream
6158 	 * Returns: a #GOutputStream, owned by the #GIOStream.
6159 	 *     Do not free.
6160 	 */
6161 	extern(C) GOutputStream* function(GIOStream* stream) getOutputStream;
6162 	/** */
6163 	extern(C) int function(GIOStream* stream, GCancellable* cancellable, GError** err) closeFn;
6164 	/** */
6165 	extern(C) void function(GIOStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
6166 	/**
6167 	 *
6168 	 * Params:
6169 	 *     stream = a #GIOStream
6170 	 *     result = a #GAsyncResult
6171 	 * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
6172 	 *
6173 	 * Throws: GException on failure.
6174 	 */
6175 	extern(C) int function(GIOStream* stream, GAsyncResult* result, GError** err) closeFinish;
6176 	/** */
6177 	extern(C) void function() GReserved1;
6178 	/** */
6179 	extern(C) void function() GReserved2;
6180 	/** */
6181 	extern(C) void function() GReserved3;
6182 	/** */
6183 	extern(C) void function() GReserved4;
6184 	/** */
6185 	extern(C) void function() GReserved5;
6186 	/** */
6187 	extern(C) void function() GReserved6;
6188 	/** */
6189 	extern(C) void function() GReserved7;
6190 	/** */
6191 	extern(C) void function() GReserved8;
6192 	/** */
6193 	extern(C) void function() GReserved9;
6194 	/** */
6195 	extern(C) void function() GReserved10;
6196 }
6197 
6198 struct GIOStreamPrivate;
6199 
6200 struct GIcon;
6201 
6202 /**
6203  * GIconIface is used to implement GIcon types for various
6204  * different systems. See #GThemedIcon and #GLoadableIcon for
6205  * examples of how to implement this interface.
6206  */
6207 struct GIconIface
6208 {
6209 	/**
6210 	 * The parent interface.
6211 	 */
6212 	GTypeInterface gIface;
6213 	/**
6214 	 *
6215 	 * Params:
6216 	 *     icon = #gconstpointer to an icon object.
6217 	 * Returns: a #guint containing a hash for the @icon, suitable for
6218 	 *     use in a #GHashTable or similar data structure.
6219 	 */
6220 	extern(C) uint function(GIcon* icon) hash;
6221 	/**
6222 	 *
6223 	 * Params:
6224 	 *     icon1 = pointer to the first #GIcon.
6225 	 *     icon2 = pointer to the second #GIcon.
6226 	 * Returns: %TRUE if @icon1 is equal to @icon2. %FALSE otherwise.
6227 	 */
6228 	extern(C) int function(GIcon* icon1, GIcon* icon2) equal;
6229 	/**
6230 	 *
6231 	 * Params:
6232 	 *     icon = a #GIcon.
6233 	 * Returns: An allocated NUL-terminated UTF8 string or
6234 	 *     %NULL if @icon can't be serialized. Use g_free() to free.
6235 	 */
6236 	extern(C) int function(GIcon* icon, GPtrArray* tokens, int* outVersion) toTokens;
6237 	/** */
6238 	extern(C) GIcon* function(char** tokens, int numTokens, int version_, GError** err) fromTokens;
6239 	/**
6240 	 *
6241 	 * Params:
6242 	 *     icon = a #GIcon
6243 	 * Returns: a #GVariant, or %NULL when serialization fails. The #GVariant will not be floating.
6244 	 */
6245 	extern(C) GVariant* function(GIcon* icon) serialize;
6246 }
6247 
6248 struct GInetAddress
6249 {
6250 	GObject parentInstance;
6251 	GInetAddressPrivate* priv;
6252 }
6253 
6254 struct GInetAddressClass
6255 {
6256 	GObjectClass parentClass;
6257 	/**
6258 	 *
6259 	 * Params:
6260 	 *     address = a #GInetAddress
6261 	 * Returns: a representation of @address as a string, which should be
6262 	 *     freed after use.
6263 	 */
6264 	extern(C) char* function(GInetAddress* address) toString;
6265 	/**
6266 	 *
6267 	 * Params:
6268 	 *     address = a #GInetAddress
6269 	 * Returns: a pointer to an internal array of the bytes in @address,
6270 	 *     which should not be modified, stored, or freed. The size of this
6271 	 *     array can be gotten with g_inet_address_get_native_size().
6272 	 */
6273 	extern(C) ubyte* function(GInetAddress* address) toBytes;
6274 }
6275 
6276 struct GInetAddressMask
6277 {
6278 	GObject parentInstance;
6279 	GInetAddressMaskPrivate* priv;
6280 }
6281 
6282 struct GInetAddressMaskClass
6283 {
6284 	GObjectClass parentClass;
6285 }
6286 
6287 struct GInetAddressMaskPrivate;
6288 
6289 struct GInetAddressPrivate;
6290 
6291 struct GInetSocketAddress
6292 {
6293 	GSocketAddress parentInstance;
6294 	GInetSocketAddressPrivate* priv;
6295 }
6296 
6297 struct GInetSocketAddressClass
6298 {
6299 	GSocketAddressClass parentClass;
6300 }
6301 
6302 struct GInetSocketAddressPrivate;
6303 
6304 struct GInitable;
6305 
6306 /**
6307  * Provides an interface for initializing object such that initialization
6308  * may fail.
6309  *
6310  * Since: 2.22
6311  */
6312 struct GInitableIface
6313 {
6314 	/**
6315 	 * The parent interface.
6316 	 */
6317 	GTypeInterface gIface;
6318 	/**
6319 	 *
6320 	 * Params:
6321 	 *     initable = a #GInitable.
6322 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
6323 	 * Returns: %TRUE if successful. If an error has occurred, this function will
6324 	 *     return %FALSE and set @error appropriately if present.
6325 	 *
6326 	 * Throws: GException on failure.
6327 	 */
6328 	extern(C) int function(GInitable* initable, GCancellable* cancellable, GError** err) init;
6329 }
6330 
6331 /**
6332  * Structure used for scatter/gather data input when receiving multiple
6333  * messages or packets in one go. You generally pass in an array of empty
6334  * #GInputVectors and the operation will use all the buffers as if they
6335  * were one buffer, and will set @bytes_received to the total number of bytes
6336  * received across all #GInputVectors.
6337  *
6338  * This structure closely mirrors `struct mmsghdr` and `struct msghdr` from
6339  * the POSIX sockets API (see `man 2 recvmmsg`).
6340  *
6341  * If @address is non-%NULL then it is set to the source address the message
6342  * was received from, and the caller must free it afterwards.
6343  *
6344  * If @control_messages is non-%NULL then it is set to an array of control
6345  * messages received with the message (if any), and the caller must free it
6346  * afterwards. @num_control_messages is set to the number of elements in
6347  * this array, which may be zero.
6348  *
6349  * Flags relevant to this message will be returned in @flags. For example,
6350  * `MSG_EOR` or `MSG_TRUNC`.
6351  *
6352  * Since: 2.48
6353  */
6354 struct GInputMessage
6355 {
6356 	/**
6357 	 * return location
6358 	 * for a #GSocketAddress, or %NULL
6359 	 */
6360 	GSocketAddress** address;
6361 	/**
6362 	 * pointer to an
6363 	 * array of input vectors
6364 	 */
6365 	GInputVector* vectors;
6366 	/**
6367 	 * the number of input vectors pointed to by @vectors
6368 	 */
6369 	uint numVectors;
6370 	/**
6371 	 * will be set to the number of bytes that have been
6372 	 * received
6373 	 */
6374 	size_t bytesReceived;
6375 	/**
6376 	 * collection of #GSocketMsgFlags for the received message,
6377 	 * outputted by the call
6378 	 */
6379 	int flags;
6380 	/**
6381 	 * return location for a
6382 	 * caller-allocated array of #GSocketControlMessages, or %NULL
6383 	 */
6384 	GSocketControlMessage*** controlMessages;
6385 	/**
6386 	 * return location for the number of
6387 	 * elements in @control_messages
6388 	 */
6389 	uint* numControlMessages;
6390 }
6391 
6392 struct GInputStream
6393 {
6394 	GObject parentInstance;
6395 	GInputStreamPrivate* priv;
6396 }
6397 
6398 struct GInputStreamClass
6399 {
6400 	GObjectClass parentClass;
6401 	/** */
6402 	extern(C) ptrdiff_t function(GInputStream* stream, void* buffer, size_t count, GCancellable* cancellable, GError** err) readFn;
6403 	/**
6404 	 *
6405 	 * Params:
6406 	 *     stream = a #GInputStream.
6407 	 *     count = the number of bytes that will be skipped from the stream
6408 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
6409 	 * Returns: Number of bytes skipped, or -1 on error
6410 	 *
6411 	 * Throws: GException on failure.
6412 	 */
6413 	extern(C) ptrdiff_t function(GInputStream* stream, size_t count, GCancellable* cancellable, GError** err) skip;
6414 	/** */
6415 	extern(C) int function(GInputStream* stream, GCancellable* cancellable, GError** err) closeFn;
6416 	/** */
6417 	extern(C) void function(GInputStream* stream, void* buffer, size_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) readAsync;
6418 	/**
6419 	 *
6420 	 * Params:
6421 	 *     stream = a #GInputStream.
6422 	 *     result = a #GAsyncResult.
6423 	 * Returns: number of bytes read in, or -1 on error, or 0 on end of file.
6424 	 *
6425 	 * Throws: GException on failure.
6426 	 */
6427 	extern(C) ptrdiff_t function(GInputStream* stream, GAsyncResult* result, GError** err) readFinish;
6428 	/** */
6429 	extern(C) void function(GInputStream* stream, size_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) skipAsync;
6430 	/**
6431 	 *
6432 	 * Params:
6433 	 *     stream = a #GInputStream.
6434 	 *     result = a #GAsyncResult.
6435 	 * Returns: the size of the bytes skipped, or `-1` on error.
6436 	 *
6437 	 * Throws: GException on failure.
6438 	 */
6439 	extern(C) ptrdiff_t function(GInputStream* stream, GAsyncResult* result, GError** err) skipFinish;
6440 	/** */
6441 	extern(C) void function(GInputStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
6442 	/**
6443 	 *
6444 	 * Params:
6445 	 *     stream = a #GInputStream.
6446 	 *     result = a #GAsyncResult.
6447 	 * Returns: %TRUE if the stream was closed successfully.
6448 	 *
6449 	 * Throws: GException on failure.
6450 	 */
6451 	extern(C) int function(GInputStream* stream, GAsyncResult* result, GError** err) closeFinish;
6452 	/** */
6453 	extern(C) void function() GReserved1;
6454 	/** */
6455 	extern(C) void function() GReserved2;
6456 	/** */
6457 	extern(C) void function() GReserved3;
6458 	/** */
6459 	extern(C) void function() GReserved4;
6460 	/** */
6461 	extern(C) void function() GReserved5;
6462 }
6463 
6464 struct GInputStreamPrivate;
6465 
6466 /**
6467  * Structure used for scatter/gather data input.
6468  * You generally pass in an array of #GInputVectors
6469  * and the operation will store the read data starting in the
6470  * first buffer, switching to the next as needed.
6471  *
6472  * Since: 2.22
6473  */
6474 struct GInputVector
6475 {
6476 	/**
6477 	 * Pointer to a buffer where data will be written.
6478 	 */
6479 	void* buffer;
6480 	/**
6481 	 * the available size in @buffer.
6482 	 */
6483 	size_t size;
6484 }
6485 
6486 struct GListModel;
6487 
6488 /**
6489  * The virtual function table for #GListModel.
6490  *
6491  * Since: 2.44
6492  */
6493 struct GListModelInterface
6494 {
6495 	/**
6496 	 * parent #GTypeInterface
6497 	 */
6498 	GTypeInterface gIface;
6499 	/**
6500 	 *
6501 	 * Params:
6502 	 *     list = a #GListModel
6503 	 * Returns: the #GType of the items contained in @list.
6504 	 */
6505 	extern(C) GType function(GListModel* list) getItemType;
6506 	/**
6507 	 *
6508 	 * Params:
6509 	 *     list = a #GListModel
6510 	 * Returns: the number of items in @list.
6511 	 */
6512 	extern(C) uint function(GListModel* list) getNItems;
6513 	/**
6514 	 *
6515 	 * Params:
6516 	 *     list = a #GListModel
6517 	 *     position = the position of the item to fetch
6518 	 * Returns: the object at @position.
6519 	 */
6520 	extern(C) void* function(GListModel* list, uint position) getItem;
6521 }
6522 
6523 struct GListStore;
6524 
6525 struct GListStoreClass
6526 {
6527 	GObjectClass parentClass;
6528 }
6529 
6530 struct GLoadableIcon;
6531 
6532 /**
6533  * Interface for icons that can be loaded as a stream.
6534  */
6535 struct GLoadableIconIface
6536 {
6537 	/**
6538 	 * The parent interface.
6539 	 */
6540 	GTypeInterface gIface;
6541 	/**
6542 	 *
6543 	 * Params:
6544 	 *     icon = a #GLoadableIcon.
6545 	 *     size = an integer.
6546 	 *     type = a location to store the type of the loaded
6547 	 *         icon, %NULL to ignore.
6548 	 *     cancellable = optional #GCancellable object, %NULL to
6549 	 *         ignore.
6550 	 * Returns: a #GInputStream to read the icon from.
6551 	 *
6552 	 * Throws: GException on failure.
6553 	 */
6554 	extern(C) GInputStream* function(GLoadableIcon* icon, int size, char** type, GCancellable* cancellable, GError** err) load;
6555 	/** */
6556 	extern(C) void function(GLoadableIcon* icon, int size, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) loadAsync;
6557 	/**
6558 	 *
6559 	 * Params:
6560 	 *     icon = a #GLoadableIcon.
6561 	 *     res = a #GAsyncResult.
6562 	 *     type = a location to store the type of the loaded
6563 	 *         icon, %NULL to ignore.
6564 	 * Returns: a #GInputStream to read the icon from.
6565 	 *
6566 	 * Throws: GException on failure.
6567 	 */
6568 	extern(C) GInputStream* function(GLoadableIcon* icon, GAsyncResult* res, char** type, GError** err) loadFinish;
6569 }
6570 
6571 struct GMemoryInputStream
6572 {
6573 	GInputStream parentInstance;
6574 	GMemoryInputStreamPrivate* priv;
6575 }
6576 
6577 struct GMemoryInputStreamClass
6578 {
6579 	GInputStreamClass parentClass;
6580 	/** */
6581 	extern(C) void function() GReserved1;
6582 	/** */
6583 	extern(C) void function() GReserved2;
6584 	/** */
6585 	extern(C) void function() GReserved3;
6586 	/** */
6587 	extern(C) void function() GReserved4;
6588 	/** */
6589 	extern(C) void function() GReserved5;
6590 }
6591 
6592 struct GMemoryInputStreamPrivate;
6593 
6594 struct GMemoryMonitor;
6595 
6596 /**
6597  * The virtual function table for #GMemoryMonitor.
6598  *
6599  * Since: 2.64
6600  */
6601 struct GMemoryMonitorInterface
6602 {
6603 	/**
6604 	 * The parent interface.
6605 	 */
6606 	GTypeInterface gIface;
6607 	/** */
6608 	extern(C) void function(GMemoryMonitor* monitor, GMemoryMonitorWarningLevel level) lowMemoryWarning;
6609 }
6610 
6611 struct GMemoryOutputStream
6612 {
6613 	GOutputStream parentInstance;
6614 	GMemoryOutputStreamPrivate* priv;
6615 }
6616 
6617 struct GMemoryOutputStreamClass
6618 {
6619 	GOutputStreamClass parentClass;
6620 	/** */
6621 	extern(C) void function() GReserved1;
6622 	/** */
6623 	extern(C) void function() GReserved2;
6624 	/** */
6625 	extern(C) void function() GReserved3;
6626 	/** */
6627 	extern(C) void function() GReserved4;
6628 	/** */
6629 	extern(C) void function() GReserved5;
6630 }
6631 
6632 struct GMemoryOutputStreamPrivate;
6633 
6634 struct GMenu;
6635 
6636 struct GMenuAttributeIter
6637 {
6638 	GObject parentInstance;
6639 	GMenuAttributeIterPrivate* priv;
6640 }
6641 
6642 struct GMenuAttributeIterClass
6643 {
6644 	GObjectClass parentClass;
6645 	/**
6646 	 *
6647 	 * Params:
6648 	 *     iter = a #GMenuAttributeIter
6649 	 *     outName = the type of the attribute
6650 	 *     value = the attribute value
6651 	 * Returns: %TRUE on success, or %FALSE if there is no additional
6652 	 *     attribute
6653 	 */
6654 	extern(C) int function(GMenuAttributeIter* iter, char** outName, GVariant** value) getNext;
6655 }
6656 
6657 struct GMenuAttributeIterPrivate;
6658 
6659 struct GMenuItem;
6660 
6661 struct GMenuLinkIter
6662 {
6663 	GObject parentInstance;
6664 	GMenuLinkIterPrivate* priv;
6665 }
6666 
6667 struct GMenuLinkIterClass
6668 {
6669 	GObjectClass parentClass;
6670 	/**
6671 	 *
6672 	 * Params:
6673 	 *     iter = a #GMenuLinkIter
6674 	 *     outLink = the name of the link
6675 	 *     value = the linked #GMenuModel
6676 	 * Returns: %TRUE on success, or %FALSE if there is no additional link
6677 	 */
6678 	extern(C) int function(GMenuLinkIter* iter, char** outLink, GMenuModel** value) getNext;
6679 }
6680 
6681 struct GMenuLinkIterPrivate;
6682 
6683 struct GMenuModel
6684 {
6685 	GObject parentInstance;
6686 	GMenuModelPrivate* priv;
6687 }
6688 
6689 struct GMenuModelClass
6690 {
6691 	GObjectClass parentClass;
6692 	/**
6693 	 *
6694 	 * Params:
6695 	 *     model = a #GMenuModel
6696 	 * Returns: %TRUE if the model is mutable (ie: "items-changed" may be
6697 	 *     emitted).
6698 	 */
6699 	extern(C) int function(GMenuModel* model) isMutable;
6700 	/**
6701 	 *
6702 	 * Params:
6703 	 *     model = a #GMenuModel
6704 	 * Returns: the number of items
6705 	 */
6706 	extern(C) int function(GMenuModel* model) getNItems;
6707 	/** */
6708 	extern(C) void function(GMenuModel* model, int itemIndex, GHashTable** attributes) getItemAttributes;
6709 	/**
6710 	 *
6711 	 * Params:
6712 	 *     model = a #GMenuModel
6713 	 *     itemIndex = the index of the item
6714 	 * Returns: a new #GMenuAttributeIter
6715 	 */
6716 	extern(C) GMenuAttributeIter* function(GMenuModel* model, int itemIndex) iterateItemAttributes;
6717 	/**
6718 	 *
6719 	 * Params:
6720 	 *     model = a #GMenuModel
6721 	 *     itemIndex = the index of the item
6722 	 *     attribute = the attribute to query
6723 	 *     expectedType = the expected type of the attribute, or
6724 	 *         %NULL
6725 	 * Returns: the value of the attribute
6726 	 */
6727 	extern(C) GVariant* function(GMenuModel* model, int itemIndex, const(char)* attribute, GVariantType* expectedType) getItemAttributeValue;
6728 	/** */
6729 	extern(C) void function(GMenuModel* model, int itemIndex, GHashTable** links) getItemLinks;
6730 	/**
6731 	 *
6732 	 * Params:
6733 	 *     model = a #GMenuModel
6734 	 *     itemIndex = the index of the item
6735 	 * Returns: a new #GMenuLinkIter
6736 	 */
6737 	extern(C) GMenuLinkIter* function(GMenuModel* model, int itemIndex) iterateItemLinks;
6738 	/**
6739 	 *
6740 	 * Params:
6741 	 *     model = a #GMenuModel
6742 	 *     itemIndex = the index of the item
6743 	 *     link = the link to query
6744 	 * Returns: the linked #GMenuModel, or %NULL
6745 	 */
6746 	extern(C) GMenuModel* function(GMenuModel* model, int itemIndex, const(char)* link) getItemLink;
6747 }
6748 
6749 struct GMenuModelPrivate;
6750 
6751 struct GMount;
6752 
6753 /**
6754  * Interface for implementing operations for mounts.
6755  */
6756 struct GMountIface
6757 {
6758 	/**
6759 	 * The parent interface.
6760 	 */
6761 	GTypeInterface gIface;
6762 	/** */
6763 	extern(C) void function(GMount* mount) changed;
6764 	/** */
6765 	extern(C) void function(GMount* mount) unmounted;
6766 	/**
6767 	 *
6768 	 * Params:
6769 	 *     mount = a #GMount.
6770 	 * Returns: a #GFile.
6771 	 *     The returned object should be unreffed with
6772 	 *     g_object_unref() when no longer needed.
6773 	 */
6774 	extern(C) GFile* function(GMount* mount) getRoot;
6775 	/**
6776 	 *
6777 	 * Params:
6778 	 *     mount = a #GMount.
6779 	 * Returns: the name for the given @mount.
6780 	 *     The returned string should be freed with g_free()
6781 	 *     when no longer needed.
6782 	 */
6783 	extern(C) char* function(GMount* mount) getName;
6784 	/**
6785 	 *
6786 	 * Params:
6787 	 *     mount = a #GMount.
6788 	 * Returns: a #GIcon.
6789 	 *     The returned object should be unreffed with
6790 	 *     g_object_unref() when no longer needed.
6791 	 */
6792 	extern(C) GIcon* function(GMount* mount) getIcon;
6793 	/**
6794 	 *
6795 	 * Params:
6796 	 *     mount = a #GMount.
6797 	 * Returns: the UUID for @mount or %NULL if no UUID
6798 	 *     can be computed.
6799 	 *     The returned string should be freed with g_free()
6800 	 *     when no longer needed.
6801 	 */
6802 	extern(C) char* function(GMount* mount) getUuid;
6803 	/**
6804 	 *
6805 	 * Params:
6806 	 *     mount = a #GMount.
6807 	 * Returns: a #GVolume or %NULL if @mount is not
6808 	 *     associated with a volume.
6809 	 *     The returned object should be unreffed with
6810 	 *     g_object_unref() when no longer needed.
6811 	 */
6812 	extern(C) GVolume* function(GMount* mount) getVolume;
6813 	/**
6814 	 *
6815 	 * Params:
6816 	 *     mount = a #GMount.
6817 	 * Returns: a #GDrive or %NULL if @mount is not
6818 	 *     associated with a volume or a drive.
6819 	 *     The returned object should be unreffed with
6820 	 *     g_object_unref() when no longer needed.
6821 	 */
6822 	extern(C) GDrive* function(GMount* mount) getDrive;
6823 	/**
6824 	 *
6825 	 * Params:
6826 	 *     mount = a #GMount.
6827 	 * Returns: %TRUE if the @mount can be unmounted.
6828 	 */
6829 	extern(C) int function(GMount* mount) canUnmount;
6830 	/**
6831 	 *
6832 	 * Params:
6833 	 *     mount = a #GMount.
6834 	 * Returns: %TRUE if the @mount can be ejected.
6835 	 */
6836 	extern(C) int function(GMount* mount) canEject;
6837 	/** */
6838 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmount;
6839 	/**
6840 	 *
6841 	 * Params:
6842 	 *     mount = a #GMount.
6843 	 *     result = a #GAsyncResult.
6844 	 * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
6845 	 *
6846 	 * Throws: GException on failure.
6847 	 */
6848 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) unmountFinish;
6849 	/** */
6850 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) eject;
6851 	/**
6852 	 *
6853 	 * Params:
6854 	 *     mount = a #GMount.
6855 	 *     result = a #GAsyncResult.
6856 	 * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
6857 	 *
6858 	 * Throws: GException on failure.
6859 	 */
6860 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) ejectFinish;
6861 	/** */
6862 	extern(C) void function(GMount* mount, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) remount;
6863 	/**
6864 	 *
6865 	 * Params:
6866 	 *     mount = a #GMount.
6867 	 *     result = a #GAsyncResult.
6868 	 * Returns: %TRUE if the mount was successfully remounted. %FALSE otherwise.
6869 	 *
6870 	 * Throws: GException on failure.
6871 	 */
6872 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) remountFinish;
6873 	/** */
6874 	extern(C) void function(GMount* mount, int forceRescan, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) guessContentType;
6875 	/**
6876 	 *
6877 	 * Params:
6878 	 *     mount = a #GMount
6879 	 *     result = a #GAsyncResult
6880 	 * Returns: a %NULL-terminated array of content types or %NULL on error.
6881 	 *     Caller should free this array with g_strfreev() when done with it.
6882 	 *
6883 	 * Throws: GException on failure.
6884 	 */
6885 	extern(C) char** function(GMount* mount, GAsyncResult* result, GError** err) guessContentTypeFinish;
6886 	/**
6887 	 *
6888 	 * Params:
6889 	 *     mount = a #GMount
6890 	 *     forceRescan = Whether to force a rescan of the content.
6891 	 *         Otherwise a cached result will be used if available
6892 	 *     cancellable = optional #GCancellable object, %NULL to ignore
6893 	 * Returns: a %NULL-terminated array of content types or %NULL on error.
6894 	 *     Caller should free this array with g_strfreev() when done with it.
6895 	 *
6896 	 * Throws: GException on failure.
6897 	 */
6898 	extern(C) char** function(GMount* mount, int forceRescan, GCancellable* cancellable, GError** err) guessContentTypeSync;
6899 	/** */
6900 	extern(C) void function(GMount* mount) preUnmount;
6901 	/** */
6902 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) unmountWithOperation;
6903 	/**
6904 	 *
6905 	 * Params:
6906 	 *     mount = a #GMount.
6907 	 *     result = a #GAsyncResult.
6908 	 * Returns: %TRUE if the mount was successfully unmounted. %FALSE otherwise.
6909 	 *
6910 	 * Throws: GException on failure.
6911 	 */
6912 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) unmountWithOperationFinish;
6913 	/** */
6914 	extern(C) void function(GMount* mount, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectWithOperation;
6915 	/**
6916 	 *
6917 	 * Params:
6918 	 *     mount = a #GMount.
6919 	 *     result = a #GAsyncResult.
6920 	 * Returns: %TRUE if the mount was successfully ejected. %FALSE otherwise.
6921 	 *
6922 	 * Throws: GException on failure.
6923 	 */
6924 	extern(C) int function(GMount* mount, GAsyncResult* result, GError** err) ejectWithOperationFinish;
6925 	/**
6926 	 *
6927 	 * Params:
6928 	 *     mount = a #GMount.
6929 	 * Returns: a #GFile.
6930 	 *     The returned object should be unreffed with
6931 	 *     g_object_unref() when no longer needed.
6932 	 */
6933 	extern(C) GFile* function(GMount* mount) getDefaultLocation;
6934 	/**
6935 	 *
6936 	 * Params:
6937 	 *     mount = A #GMount.
6938 	 * Returns: Sorting key for @mount or %NULL if no such key is available.
6939 	 */
6940 	extern(C) const(char)* function(GMount* mount) getSortKey;
6941 	/**
6942 	 *
6943 	 * Params:
6944 	 *     mount = a #GMount.
6945 	 * Returns: a #GIcon.
6946 	 *     The returned object should be unreffed with
6947 	 *     g_object_unref() when no longer needed.
6948 	 */
6949 	extern(C) GIcon* function(GMount* mount) getSymbolicIcon;
6950 }
6951 
6952 struct GMountOperation
6953 {
6954 	GObject parentInstance;
6955 	GMountOperationPrivate* priv;
6956 }
6957 
6958 struct GMountOperationClass
6959 {
6960 	GObjectClass parentClass;
6961 	/** */
6962 	extern(C) void function(GMountOperation* op, const(char)* message, const(char)* defaultUser, const(char)* defaultDomain, GAskPasswordFlags flags) askPassword;
6963 	/** */
6964 	extern(C) void function(GMountOperation* op, const(char)* message, char** choices) askQuestion;
6965 	/** */
6966 	extern(C) void function(GMountOperation* op, GMountOperationResult result) reply;
6967 	/** */
6968 	extern(C) void function(GMountOperation* op) aborted;
6969 	/** */
6970 	extern(C) void function(GMountOperation* op, const(char)* message, GArray* processes, char** choices) showProcesses;
6971 	/** */
6972 	extern(C) void function(GMountOperation* op, const(char)* message, long timeLeft, long bytesLeft) showUnmountProgress;
6973 	/** */
6974 	extern(C) void function() GReserved1;
6975 	/** */
6976 	extern(C) void function() GReserved2;
6977 	/** */
6978 	extern(C) void function() GReserved3;
6979 	/** */
6980 	extern(C) void function() GReserved4;
6981 	/** */
6982 	extern(C) void function() GReserved5;
6983 	/** */
6984 	extern(C) void function() GReserved6;
6985 	/** */
6986 	extern(C) void function() GReserved7;
6987 	/** */
6988 	extern(C) void function() GReserved8;
6989 	/** */
6990 	extern(C) void function() GReserved9;
6991 }
6992 
6993 struct GMountOperationPrivate;
6994 
6995 struct GNativeSocketAddress
6996 {
6997 	GSocketAddress parentInstance;
6998 	GNativeSocketAddressPrivate* priv;
6999 }
7000 
7001 struct GNativeSocketAddressClass
7002 {
7003 	GSocketAddressClass parentClass;
7004 }
7005 
7006 struct GNativeSocketAddressPrivate;
7007 
7008 struct GNativeVolumeMonitor
7009 {
7010 	GVolumeMonitor parentInstance;
7011 }
7012 
7013 struct GNativeVolumeMonitorClass
7014 {
7015 	GVolumeMonitorClass parentClass;
7016 	/** */
7017 	extern(C) GMount* function(const(char)* mountPath, GCancellable* cancellable) getMountForMountPath;
7018 }
7019 
7020 struct GNetworkAddress
7021 {
7022 	GObject parentInstance;
7023 	GNetworkAddressPrivate* priv;
7024 }
7025 
7026 struct GNetworkAddressClass
7027 {
7028 	GObjectClass parentClass;
7029 }
7030 
7031 struct GNetworkAddressPrivate;
7032 
7033 struct GNetworkMonitor;
7034 
7035 /**
7036  * The virtual function table for #GNetworkMonitor.
7037  *
7038  * Since: 2.32
7039  */
7040 struct GNetworkMonitorInterface
7041 {
7042 	/**
7043 	 * The parent interface.
7044 	 */
7045 	GTypeInterface gIface;
7046 	/** */
7047 	extern(C) void function(GNetworkMonitor* monitor, int networkAvailable) networkChanged;
7048 	/**
7049 	 *
7050 	 * Params:
7051 	 *     monitor = a #GNetworkMonitor
7052 	 *     connectable = a #GSocketConnectable
7053 	 *     cancellable = a #GCancellable, or %NULL
7054 	 * Returns: %TRUE if @connectable is reachable, %FALSE if not.
7055 	 *
7056 	 * Throws: GException on failure.
7057 	 */
7058 	extern(C) int function(GNetworkMonitor* monitor, GSocketConnectable* connectable, GCancellable* cancellable, GError** err) canReach;
7059 	/** */
7060 	extern(C) void function(GNetworkMonitor* monitor, GSocketConnectable* connectable, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) canReachAsync;
7061 	/**
7062 	 *
7063 	 * Params:
7064 	 *     monitor = a #GNetworkMonitor
7065 	 *     result = a #GAsyncResult
7066 	 * Returns: %TRUE if network is reachable, %FALSE if not.
7067 	 *
7068 	 * Throws: GException on failure.
7069 	 */
7070 	extern(C) int function(GNetworkMonitor* monitor, GAsyncResult* result, GError** err) canReachFinish;
7071 }
7072 
7073 struct GNetworkService
7074 {
7075 	GObject parentInstance;
7076 	GNetworkServicePrivate* priv;
7077 }
7078 
7079 struct GNetworkServiceClass
7080 {
7081 	GObjectClass parentClass;
7082 }
7083 
7084 struct GNetworkServicePrivate;
7085 
7086 struct GNotification;
7087 
7088 /**
7089  * Structure used for scatter/gather data output when sending multiple
7090  * messages or packets in one go. You generally pass in an array of
7091  * #GOutputVectors and the operation will use all the buffers as if they
7092  * were one buffer.
7093  *
7094  * If @address is %NULL then the message is sent to the default receiver
7095  * (as previously set by g_socket_connect()).
7096  *
7097  * Since: 2.44
7098  */
7099 struct GOutputMessage
7100 {
7101 	/**
7102 	 * a #GSocketAddress, or %NULL
7103 	 */
7104 	GSocketAddress* address;
7105 	/**
7106 	 * pointer to an array of output vectors
7107 	 */
7108 	GOutputVector* vectors;
7109 	/**
7110 	 * the number of output vectors pointed to by @vectors.
7111 	 */
7112 	uint numVectors;
7113 	/**
7114 	 * initialize to 0. Will be set to the number of bytes
7115 	 * that have been sent
7116 	 */
7117 	uint bytesSent;
7118 	/**
7119 	 * a pointer
7120 	 * to an array of #GSocketControlMessages, or %NULL.
7121 	 */
7122 	GSocketControlMessage** controlMessages;
7123 	/**
7124 	 * number of elements in @control_messages.
7125 	 */
7126 	uint numControlMessages;
7127 }
7128 
7129 struct GOutputStream
7130 {
7131 	GObject parentInstance;
7132 	GOutputStreamPrivate* priv;
7133 }
7134 
7135 struct GOutputStreamClass
7136 {
7137 	GObjectClass parentClass;
7138 	/**
7139 	 *
7140 	 * Params:
7141 	 *     stream = a #GOutputStream.
7142 	 *     buffer = the buffer containing the data to write.
7143 	 *     count = the number of bytes to write
7144 	 *     cancellable = optional cancellable object
7145 	 * Returns: Number of bytes written, or -1 on error
7146 	 *
7147 	 * Throws: GException on failure.
7148 	 */
7149 	extern(C) ptrdiff_t function(GOutputStream* stream, void* buffer, size_t count, GCancellable* cancellable, GError** err) writeFn;
7150 	/**
7151 	 *
7152 	 * Params:
7153 	 *     stream = a #GOutputStream.
7154 	 *     source = a #GInputStream.
7155 	 *     flags = a set of #GOutputStreamSpliceFlags.
7156 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
7157 	 * Returns: a #gssize containing the size of the data spliced, or
7158 	 *     -1 if an error occurred. Note that if the number of bytes
7159 	 *     spliced is greater than %G_MAXSSIZE, then that will be
7160 	 *     returned, and there is no way to determine the actual number
7161 	 *     of bytes spliced.
7162 	 *
7163 	 * Throws: GException on failure.
7164 	 */
7165 	extern(C) ptrdiff_t function(GOutputStream* stream, GInputStream* source, GOutputStreamSpliceFlags flags, GCancellable* cancellable, GError** err) splice;
7166 	/**
7167 	 *
7168 	 * Params:
7169 	 *     stream = a #GOutputStream.
7170 	 *     cancellable = optional cancellable object
7171 	 * Returns: %TRUE on success, %FALSE on error
7172 	 *
7173 	 * Throws: GException on failure.
7174 	 */
7175 	extern(C) int function(GOutputStream* stream, GCancellable* cancellable, GError** err) flush;
7176 	/** */
7177 	extern(C) int function(GOutputStream* stream, GCancellable* cancellable, GError** err) closeFn;
7178 	/** */
7179 	extern(C) void function(GOutputStream* stream, void* buffer, size_t count, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) writeAsync;
7180 	/**
7181 	 *
7182 	 * Params:
7183 	 *     stream = a #GOutputStream.
7184 	 *     result = a #GAsyncResult.
7185 	 * Returns: a #gssize containing the number of bytes written to the stream.
7186 	 *
7187 	 * Throws: GException on failure.
7188 	 */
7189 	extern(C) ptrdiff_t function(GOutputStream* stream, GAsyncResult* result, GError** err) writeFinish;
7190 	/** */
7191 	extern(C) void function(GOutputStream* stream, GInputStream* source, GOutputStreamSpliceFlags flags, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) spliceAsync;
7192 	/**
7193 	 *
7194 	 * Params:
7195 	 *     stream = a #GOutputStream.
7196 	 *     result = a #GAsyncResult.
7197 	 * Returns: a #gssize of the number of bytes spliced. Note that if the
7198 	 *     number of bytes spliced is greater than %G_MAXSSIZE, then that
7199 	 *     will be returned, and there is no way to determine the actual
7200 	 *     number of bytes spliced.
7201 	 *
7202 	 * Throws: GException on failure.
7203 	 */
7204 	extern(C) ptrdiff_t function(GOutputStream* stream, GAsyncResult* result, GError** err) spliceFinish;
7205 	/** */
7206 	extern(C) void function(GOutputStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) flushAsync;
7207 	/**
7208 	 *
7209 	 * Params:
7210 	 *     stream = a #GOutputStream.
7211 	 *     result = a GAsyncResult.
7212 	 * Returns: %TRUE if flush operation succeeded, %FALSE otherwise.
7213 	 *
7214 	 * Throws: GException on failure.
7215 	 */
7216 	extern(C) int function(GOutputStream* stream, GAsyncResult* result, GError** err) flushFinish;
7217 	/** */
7218 	extern(C) void function(GOutputStream* stream, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) closeAsync;
7219 	/**
7220 	 *
7221 	 * Params:
7222 	 *     stream = a #GOutputStream.
7223 	 *     result = a #GAsyncResult.
7224 	 * Returns: %TRUE if stream was successfully closed, %FALSE otherwise.
7225 	 *
7226 	 * Throws: GException on failure.
7227 	 */
7228 	extern(C) int function(GOutputStream* stream, GAsyncResult* result, GError** err) closeFinish;
7229 	/**
7230 	 *
7231 	 * Params:
7232 	 *     stream = a #GOutputStream.
7233 	 *     vectors = the buffer containing the #GOutputVectors to write.
7234 	 *     nVectors = the number of vectors to write
7235 	 *     bytesWritten = location to store the number of bytes that were
7236 	 *         written to the stream
7237 	 *     cancellable = optional cancellable object
7238 	 * Returns: %TRUE on success, %FALSE if there was an error
7239 	 *
7240 	 * Throws: GException on failure.
7241 	 */
7242 	extern(C) int function(GOutputStream* stream, GOutputVector* vectors, size_t nVectors, size_t* bytesWritten, GCancellable* cancellable, GError** err) writevFn;
7243 	/** */
7244 	extern(C) void function(GOutputStream* stream, GOutputVector* vectors, size_t nVectors, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) writevAsync;
7245 	/**
7246 	 *
7247 	 * Params:
7248 	 *     stream = a #GOutputStream.
7249 	 *     result = a #GAsyncResult.
7250 	 *     bytesWritten = location to store the number of bytes that were written to the stream
7251 	 * Returns: %TRUE on success, %FALSE if there was an error
7252 	 *
7253 	 * Throws: GException on failure.
7254 	 */
7255 	extern(C) int function(GOutputStream* stream, GAsyncResult* result, size_t* bytesWritten, GError** err) writevFinish;
7256 	/** */
7257 	extern(C) void function() GReserved4;
7258 	/** */
7259 	extern(C) void function() GReserved5;
7260 	/** */
7261 	extern(C) void function() GReserved6;
7262 	/** */
7263 	extern(C) void function() GReserved7;
7264 	/** */
7265 	extern(C) void function() GReserved8;
7266 }
7267 
7268 struct GOutputStreamPrivate;
7269 
7270 /**
7271  * Structure used for scatter/gather data output.
7272  * You generally pass in an array of #GOutputVectors
7273  * and the operation will use all the buffers as if they were
7274  * one buffer.
7275  *
7276  * Since: 2.22
7277  */
7278 struct GOutputVector
7279 {
7280 	/**
7281 	 * Pointer to a buffer of data to read.
7282 	 */
7283 	void* buffer;
7284 	/**
7285 	 * the size of @buffer.
7286 	 */
7287 	size_t size;
7288 }
7289 
7290 struct GPermission
7291 {
7292 	GObject parentInstance;
7293 	GPermissionPrivate* priv;
7294 }
7295 
7296 struct GPermissionClass
7297 {
7298 	GObjectClass parentClass;
7299 	/**
7300 	 *
7301 	 * Params:
7302 	 *     permission = a #GPermission instance
7303 	 *     cancellable = a #GCancellable, or %NULL
7304 	 * Returns: %TRUE if the permission was successfully acquired
7305 	 *
7306 	 * Throws: GException on failure.
7307 	 */
7308 	extern(C) int function(GPermission* permission, GCancellable* cancellable, GError** err) acquire;
7309 	/** */
7310 	extern(C) void function(GPermission* permission, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) acquireAsync;
7311 	/**
7312 	 *
7313 	 * Params:
7314 	 *     permission = a #GPermission instance
7315 	 *     result = the #GAsyncResult given to the #GAsyncReadyCallback
7316 	 * Returns: %TRUE if the permission was successfully acquired
7317 	 *
7318 	 * Throws: GException on failure.
7319 	 */
7320 	extern(C) int function(GPermission* permission, GAsyncResult* result, GError** err) acquireFinish;
7321 	/**
7322 	 *
7323 	 * Params:
7324 	 *     permission = a #GPermission instance
7325 	 *     cancellable = a #GCancellable, or %NULL
7326 	 * Returns: %TRUE if the permission was successfully released
7327 	 *
7328 	 * Throws: GException on failure.
7329 	 */
7330 	extern(C) int function(GPermission* permission, GCancellable* cancellable, GError** err) release;
7331 	/** */
7332 	extern(C) void function(GPermission* permission, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) releaseAsync;
7333 	/**
7334 	 *
7335 	 * Params:
7336 	 *     permission = a #GPermission instance
7337 	 *     result = the #GAsyncResult given to the #GAsyncReadyCallback
7338 	 * Returns: %TRUE if the permission was successfully released
7339 	 *
7340 	 * Throws: GException on failure.
7341 	 */
7342 	extern(C) int function(GPermission* permission, GAsyncResult* result, GError** err) releaseFinish;
7343 	void*[16] reserved;
7344 }
7345 
7346 struct GPermissionPrivate;
7347 
7348 struct GPollableInputStream;
7349 
7350 /**
7351  * The interface for pollable input streams.
7352  *
7353  * The default implementation of @can_poll always returns %TRUE.
7354  *
7355  * The default implementation of @read_nonblocking calls
7356  * g_pollable_input_stream_is_readable(), and then calls
7357  * g_input_stream_read() if it returns %TRUE. This means you only need
7358  * to override it if it is possible that your @is_readable
7359  * implementation may return %TRUE when the stream is not actually
7360  * readable.
7361  *
7362  * Since: 2.28
7363  */
7364 struct GPollableInputStreamInterface
7365 {
7366 	/**
7367 	 * The parent interface.
7368 	 */
7369 	GTypeInterface gIface;
7370 	/**
7371 	 *
7372 	 * Params:
7373 	 *     stream = a #GPollableInputStream.
7374 	 * Returns: %TRUE if @stream is pollable, %FALSE if not.
7375 	 */
7376 	extern(C) int function(GPollableInputStream* stream) canPoll;
7377 	/**
7378 	 *
7379 	 * Params:
7380 	 *     stream = a #GPollableInputStream.
7381 	 * Returns: %TRUE if @stream is readable, %FALSE if not. If an error
7382 	 *     has occurred on @stream, this will result in
7383 	 *     g_pollable_input_stream_is_readable() returning %TRUE, and the
7384 	 *     next attempt to read will return the error.
7385 	 */
7386 	extern(C) int function(GPollableInputStream* stream) isReadable;
7387 	/**
7388 	 *
7389 	 * Params:
7390 	 *     stream = a #GPollableInputStream.
7391 	 *     cancellable = a #GCancellable, or %NULL
7392 	 * Returns: a new #GSource
7393 	 */
7394 	extern(C) GSource* function(GPollableInputStream* stream, GCancellable* cancellable) createSource;
7395 	/**
7396 	 *
7397 	 * Params:
7398 	 *     stream = a #GPollableInputStream
7399 	 *     buffer = a
7400 	 *         buffer to read data into (which should be at least @count bytes long).
7401 	 *     count = the number of bytes you want to read
7402 	 * Returns: the number of bytes read, or -1 on error (including
7403 	 *     %G_IO_ERROR_WOULD_BLOCK).
7404 	 *
7405 	 * Throws: GException on failure.
7406 	 */
7407 	extern(C) ptrdiff_t function(GPollableInputStream* stream, void* buffer, size_t count, GError** err) readNonblocking;
7408 }
7409 
7410 struct GPollableOutputStream;
7411 
7412 /**
7413  * The interface for pollable output streams.
7414  *
7415  * The default implementation of @can_poll always returns %TRUE.
7416  *
7417  * The default implementation of @write_nonblocking calls
7418  * g_pollable_output_stream_is_writable(), and then calls
7419  * g_output_stream_write() if it returns %TRUE. This means you only
7420  * need to override it if it is possible that your @is_writable
7421  * implementation may return %TRUE when the stream is not actually
7422  * writable.
7423  *
7424  * The default implementation of @writev_nonblocking calls
7425  * g_pollable_output_stream_write_nonblocking() for each vector, and converts
7426  * its return value and error (if set) to a #GPollableReturn. You should
7427  * override this where possible to avoid having to allocate a #GError to return
7428  * %G_IO_ERROR_WOULD_BLOCK.
7429  *
7430  * Since: 2.28
7431  */
7432 struct GPollableOutputStreamInterface
7433 {
7434 	/**
7435 	 * The parent interface.
7436 	 */
7437 	GTypeInterface gIface;
7438 	/**
7439 	 *
7440 	 * Params:
7441 	 *     stream = a #GPollableOutputStream.
7442 	 * Returns: %TRUE if @stream is pollable, %FALSE if not.
7443 	 */
7444 	extern(C) int function(GPollableOutputStream* stream) canPoll;
7445 	/**
7446 	 *
7447 	 * Params:
7448 	 *     stream = a #GPollableOutputStream.
7449 	 * Returns: %TRUE if @stream is writable, %FALSE if not. If an error
7450 	 *     has occurred on @stream, this will result in
7451 	 *     g_pollable_output_stream_is_writable() returning %TRUE, and the
7452 	 *     next attempt to write will return the error.
7453 	 */
7454 	extern(C) int function(GPollableOutputStream* stream) isWritable;
7455 	/**
7456 	 *
7457 	 * Params:
7458 	 *     stream = a #GPollableOutputStream.
7459 	 *     cancellable = a #GCancellable, or %NULL
7460 	 * Returns: a new #GSource
7461 	 */
7462 	extern(C) GSource* function(GPollableOutputStream* stream, GCancellable* cancellable) createSource;
7463 	/**
7464 	 *
7465 	 * Params:
7466 	 *     stream = a #GPollableOutputStream
7467 	 *     buffer = a buffer to write
7468 	 *         data from
7469 	 *     count = the number of bytes you want to write
7470 	 * Returns: the number of bytes written, or -1 on error (including
7471 	 *     %G_IO_ERROR_WOULD_BLOCK).
7472 	 *
7473 	 * Throws: GException on failure.
7474 	 */
7475 	extern(C) ptrdiff_t function(GPollableOutputStream* stream, void* buffer, size_t count, GError** err) writeNonblocking;
7476 	/**
7477 	 *
7478 	 * Params:
7479 	 *     stream = a #GPollableOutputStream
7480 	 *     vectors = the buffer containing the #GOutputVectors to write.
7481 	 *     nVectors = the number of vectors to write
7482 	 *     bytesWritten = location to store the number of bytes that were
7483 	 *         written to the stream
7484 	 * Returns: %@G_POLLABLE_RETURN_OK on success, %G_POLLABLE_RETURN_WOULD_BLOCK
7485 	 *     if the stream is not currently writable (and @error is *not* set), or
7486 	 *     %G_POLLABLE_RETURN_FAILED if there was an error in which case @error will
7487 	 *     be set.
7488 	 *
7489 	 * Throws: GException on failure.
7490 	 */
7491 	extern(C) GPollableReturn function(GPollableOutputStream* stream, GOutputVector* vectors, size_t nVectors, size_t* bytesWritten, GError** err) writevNonblocking;
7492 }
7493 
7494 struct GPowerProfileMonitor;
7495 
7496 /**
7497  * The virtual function table for #GPowerProfileMonitor.
7498  *
7499  * Since: 2.70
7500  */
7501 struct GPowerProfileMonitorInterface
7502 {
7503 	/**
7504 	 * The parent interface.
7505 	 */
7506 	GTypeInterface gIface;
7507 }
7508 
7509 struct GPropertyAction;
7510 
7511 struct GProxy;
7512 
7513 struct GProxyAddress
7514 {
7515 	GInetSocketAddress parentInstance;
7516 	GProxyAddressPrivate* priv;
7517 }
7518 
7519 /**
7520  * Class structure for #GProxyAddress.
7521  *
7522  * Since: 2.26
7523  */
7524 struct GProxyAddressClass
7525 {
7526 	GInetSocketAddressClass parentClass;
7527 }
7528 
7529 struct GProxyAddressEnumerator
7530 {
7531 	GSocketAddressEnumerator parentInstance;
7532 	GProxyAddressEnumeratorPrivate* priv;
7533 }
7534 
7535 /**
7536  * Class structure for #GProxyAddressEnumerator.
7537  */
7538 struct GProxyAddressEnumeratorClass
7539 {
7540 	GSocketAddressEnumeratorClass parentClass;
7541 	/** */
7542 	extern(C) void function() GReserved1;
7543 	/** */
7544 	extern(C) void function() GReserved2;
7545 	/** */
7546 	extern(C) void function() GReserved3;
7547 	/** */
7548 	extern(C) void function() GReserved4;
7549 	/** */
7550 	extern(C) void function() GReserved5;
7551 	/** */
7552 	extern(C) void function() GReserved6;
7553 	/** */
7554 	extern(C) void function() GReserved7;
7555 }
7556 
7557 struct GProxyAddressEnumeratorPrivate;
7558 
7559 struct GProxyAddressPrivate;
7560 
7561 /**
7562  * Provides an interface for handling proxy connection and payload.
7563  *
7564  * Since: 2.26
7565  */
7566 struct GProxyInterface
7567 {
7568 	/**
7569 	 * The parent interface.
7570 	 */
7571 	GTypeInterface gIface;
7572 	/**
7573 	 *
7574 	 * Params:
7575 	 *     proxy = a #GProxy
7576 	 *     connection = a #GIOStream
7577 	 *     proxyAddress = a #GProxyAddress
7578 	 *     cancellable = a #GCancellable
7579 	 * Returns: a #GIOStream that will replace @connection. This might
7580 	 *     be the same as @connection, in which case a reference
7581 	 *     will be added.
7582 	 *
7583 	 * Throws: GException on failure.
7584 	 */
7585 	extern(C) GIOStream* function(GProxy* proxy, GIOStream* connection, GProxyAddress* proxyAddress, GCancellable* cancellable, GError** err) connect;
7586 	/** */
7587 	extern(C) void function(GProxy* proxy, GIOStream* connection, GProxyAddress* proxyAddress, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) connectAsync;
7588 	/**
7589 	 *
7590 	 * Params:
7591 	 *     proxy = a #GProxy
7592 	 *     result = a #GAsyncResult
7593 	 * Returns: a #GIOStream.
7594 	 *
7595 	 * Throws: GException on failure.
7596 	 */
7597 	extern(C) GIOStream* function(GProxy* proxy, GAsyncResult* result, GError** err) connectFinish;
7598 	/**
7599 	 *
7600 	 * Params:
7601 	 *     proxy = a #GProxy
7602 	 * Returns: %TRUE if hostname resolution is supported.
7603 	 */
7604 	extern(C) int function(GProxy* proxy) supportsHostname;
7605 }
7606 
7607 struct GProxyResolver;
7608 
7609 /**
7610  * The virtual function table for #GProxyResolver.
7611  */
7612 struct GProxyResolverInterface
7613 {
7614 	/**
7615 	 * The parent interface.
7616 	 */
7617 	GTypeInterface gIface;
7618 	/**
7619 	 *
7620 	 * Params:
7621 	 *     resolver = a #GProxyResolver
7622 	 * Returns: %TRUE if @resolver is supported.
7623 	 */
7624 	extern(C) int function(GProxyResolver* resolver) isSupported;
7625 	/**
7626 	 *
7627 	 * Params:
7628 	 *     resolver = a #GProxyResolver
7629 	 *     uri = a URI representing the destination to connect to
7630 	 *     cancellable = a #GCancellable, or %NULL
7631 	 * Returns: A
7632 	 *     NULL-terminated array of proxy URIs. Must be freed
7633 	 *     with g_strfreev().
7634 	 *
7635 	 * Throws: GException on failure.
7636 	 */
7637 	extern(C) char** function(GProxyResolver* resolver, const(char)* uri, GCancellable* cancellable, GError** err) lookup;
7638 	/** */
7639 	extern(C) void function(GProxyResolver* resolver, const(char)* uri, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupAsync;
7640 	/**
7641 	 *
7642 	 * Params:
7643 	 *     resolver = a #GProxyResolver
7644 	 *     result = the result passed to your #GAsyncReadyCallback
7645 	 * Returns: A
7646 	 *     NULL-terminated array of proxy URIs. Must be freed
7647 	 *     with g_strfreev().
7648 	 *
7649 	 * Throws: GException on failure.
7650 	 */
7651 	extern(C) char** function(GProxyResolver* resolver, GAsyncResult* result, GError** err) lookupFinish;
7652 }
7653 
7654 struct GRemoteActionGroup;
7655 
7656 /**
7657  * The virtual function table for #GRemoteActionGroup.
7658  *
7659  * Since: 2.32
7660  */
7661 struct GRemoteActionGroupInterface
7662 {
7663 	GTypeInterface gIface;
7664 	/** */
7665 	extern(C) void function(GRemoteActionGroup* remote, const(char)* actionName, GVariant* parameter, GVariant* platformData) activateActionFull;
7666 	/** */
7667 	extern(C) void function(GRemoteActionGroup* remote, const(char)* actionName, GVariant* value, GVariant* platformData) changeActionStateFull;
7668 }
7669 
7670 struct GResolver
7671 {
7672 	GObject parentInstance;
7673 	GResolverPrivate* priv;
7674 }
7675 
7676 struct GResolverClass
7677 {
7678 	GObjectClass parentClass;
7679 	/** */
7680 	extern(C) void function(GResolver* resolver) reload;
7681 	/**
7682 	 *
7683 	 * Params:
7684 	 *     resolver = a #GResolver
7685 	 *     hostname = the hostname to look up
7686 	 *     cancellable = a #GCancellable, or %NULL
7687 	 * Returns: a non-empty #GList
7688 	 *     of #GInetAddress, or %NULL on error. You
7689 	 *     must unref each of the addresses and free the list when you are
7690 	 *     done with it. (You can use g_resolver_free_addresses() to do this.)
7691 	 *
7692 	 * Throws: GException on failure.
7693 	 */
7694 	extern(C) GList* function(GResolver* resolver, const(char)* hostname, GCancellable* cancellable, GError** err) lookupByName;
7695 	/** */
7696 	extern(C) void function(GResolver* resolver, const(char)* hostname, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupByNameAsync;
7697 	/**
7698 	 *
7699 	 * Params:
7700 	 *     resolver = a #GResolver
7701 	 *     result = the result passed to your #GAsyncReadyCallback
7702 	 * Returns: a #GList
7703 	 *     of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
7704 	 *     for more details.
7705 	 *
7706 	 * Throws: GException on failure.
7707 	 */
7708 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupByNameFinish;
7709 	/**
7710 	 *
7711 	 * Params:
7712 	 *     resolver = a #GResolver
7713 	 *     address = the address to reverse-resolve
7714 	 *     cancellable = a #GCancellable, or %NULL
7715 	 * Returns: a hostname (either ASCII-only, or in ASCII-encoded
7716 	 *     form), or %NULL on error.
7717 	 *
7718 	 * Throws: GException on failure.
7719 	 */
7720 	extern(C) char* function(GResolver* resolver, GInetAddress* address, GCancellable* cancellable, GError** err) lookupByAddress;
7721 	/** */
7722 	extern(C) void function(GResolver* resolver, GInetAddress* address, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupByAddressAsync;
7723 	/**
7724 	 *
7725 	 * Params:
7726 	 *     resolver = a #GResolver
7727 	 *     result = the result passed to your #GAsyncReadyCallback
7728 	 * Returns: a hostname (either ASCII-only, or in ASCII-encoded
7729 	 *     form), or %NULL on error.
7730 	 *
7731 	 * Throws: GException on failure.
7732 	 */
7733 	extern(C) char* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupByAddressFinish;
7734 	/** */
7735 	extern(C) GList* function(GResolver* resolver, const(char)* rrname, GCancellable* cancellable, GError** err) lookupService;
7736 	/** */
7737 	extern(C) void function(GResolver* resolver, const(char)* rrname, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupServiceAsync;
7738 	/**
7739 	 *
7740 	 * Params:
7741 	 *     resolver = a #GResolver
7742 	 *     result = the result passed to your #GAsyncReadyCallback
7743 	 * Returns: a non-empty #GList of
7744 	 *     #GSrvTarget, or %NULL on error. See g_resolver_lookup_service() for more
7745 	 *     details.
7746 	 *
7747 	 * Throws: GException on failure.
7748 	 */
7749 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupServiceFinish;
7750 	/**
7751 	 *
7752 	 * Params:
7753 	 *     resolver = a #GResolver
7754 	 *     rrname = the DNS name to look up the record for
7755 	 *     recordType = the type of DNS record to look up
7756 	 *     cancellable = a #GCancellable, or %NULL
7757 	 * Returns: a non-empty #GList of
7758 	 *     #GVariant, or %NULL on error. You must free each of the records and the list
7759 	 *     when you are done with it. (You can use g_list_free_full() with
7760 	 *     g_variant_unref() to do this.)
7761 	 *
7762 	 * Throws: GException on failure.
7763 	 */
7764 	extern(C) GList* function(GResolver* resolver, const(char)* rrname, GResolverRecordType recordType, GCancellable* cancellable, GError** err) lookupRecords;
7765 	/** */
7766 	extern(C) void function(GResolver* resolver, const(char)* rrname, GResolverRecordType recordType, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupRecordsAsync;
7767 	/**
7768 	 *
7769 	 * Params:
7770 	 *     resolver = a #GResolver
7771 	 *     result = the result passed to your #GAsyncReadyCallback
7772 	 * Returns: a non-empty #GList of
7773 	 *     #GVariant, or %NULL on error. You must free each of the records and the list
7774 	 *     when you are done with it. (You can use g_list_free_full() with
7775 	 *     g_variant_unref() to do this.)
7776 	 *
7777 	 * Throws: GException on failure.
7778 	 */
7779 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupRecordsFinish;
7780 	/** */
7781 	extern(C) void function(GResolver* resolver, const(char)* hostname, GResolverNameLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupByNameWithFlagsAsync;
7782 	/**
7783 	 *
7784 	 * Params:
7785 	 *     resolver = a #GResolver
7786 	 *     result = the result passed to your #GAsyncReadyCallback
7787 	 * Returns: a #GList
7788 	 *     of #GInetAddress, or %NULL on error. See g_resolver_lookup_by_name()
7789 	 *     for more details.
7790 	 *
7791 	 * Throws: GException on failure.
7792 	 */
7793 	extern(C) GList* function(GResolver* resolver, GAsyncResult* result, GError** err) lookupByNameWithFlagsFinish;
7794 	/**
7795 	 *
7796 	 * Params:
7797 	 *     resolver = a #GResolver
7798 	 *     hostname = the hostname to look up
7799 	 *     flags = extra #GResolverNameLookupFlags for the lookup
7800 	 *     cancellable = a #GCancellable, or %NULL
7801 	 * Returns: a non-empty #GList
7802 	 *     of #GInetAddress, or %NULL on error. You
7803 	 *     must unref each of the addresses and free the list when you are
7804 	 *     done with it. (You can use g_resolver_free_addresses() to do this.)
7805 	 *
7806 	 * Throws: GException on failure.
7807 	 */
7808 	extern(C) GList* function(GResolver* resolver, const(char)* hostname, GResolverNameLookupFlags flags, GCancellable* cancellable, GError** err) lookupByNameWithFlags;
7809 }
7810 
7811 struct GResolverPrivate;
7812 
7813 struct GResource;
7814 
7815 struct GSeekable;
7816 
7817 /**
7818  * Provides an interface for implementing seekable functionality on I/O Streams.
7819  */
7820 struct GSeekableIface
7821 {
7822 	/**
7823 	 * The parent interface.
7824 	 */
7825 	GTypeInterface gIface;
7826 	/**
7827 	 *
7828 	 * Params:
7829 	 *     seekable = a #GSeekable.
7830 	 * Returns: the (positive or zero) offset from the beginning of the
7831 	 *     buffer, zero if the target is not seekable.
7832 	 */
7833 	extern(C) long function(GSeekable* seekable) tell;
7834 	/**
7835 	 *
7836 	 * Params:
7837 	 *     seekable = a #GSeekable.
7838 	 * Returns: %TRUE if @seekable can be seeked. %FALSE otherwise.
7839 	 */
7840 	extern(C) int function(GSeekable* seekable) canSeek;
7841 	/**
7842 	 *
7843 	 * Params:
7844 	 *     seekable = a #GSeekable.
7845 	 *     offset = a #goffset.
7846 	 *     type = a #GSeekType.
7847 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
7848 	 * Returns: %TRUE if successful. If an error
7849 	 *     has occurred, this function will return %FALSE and set @error
7850 	 *     appropriately if present.
7851 	 *
7852 	 * Throws: GException on failure.
7853 	 */
7854 	extern(C) int function(GSeekable* seekable, long offset, GSeekType type, GCancellable* cancellable, GError** err) seek;
7855 	/**
7856 	 *
7857 	 * Params:
7858 	 *     seekable = a #GSeekable.
7859 	 * Returns: %TRUE if the stream can be truncated, %FALSE otherwise.
7860 	 */
7861 	extern(C) int function(GSeekable* seekable) canTruncate;
7862 	/**
7863 	 *
7864 	 * Params:
7865 	 *     seekable = a #GSeekable.
7866 	 *     offset = new length for @seekable, in bytes.
7867 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
7868 	 * Returns: %TRUE if successful. If an error
7869 	 *     has occurred, this function will return %FALSE and set @error
7870 	 *     appropriately if present.
7871 	 *
7872 	 * Throws: GException on failure.
7873 	 */
7874 	extern(C) int function(GSeekable* seekable, long offset, GCancellable* cancellable, GError** err) truncateFn;
7875 }
7876 
7877 struct GSettings
7878 {
7879 	GObject parentInstance;
7880 	GSettingsPrivate* priv;
7881 }
7882 
7883 struct GSettingsBackend
7884 {
7885 	GObject parentInstance;
7886 	GSettingsBackendPrivate* priv;
7887 }
7888 
7889 /**
7890  * Class structure for #GSettingsBackend.
7891  */
7892 struct GSettingsBackendClass
7893 {
7894 	GObjectClass parentClass;
7895 	/** */
7896 	extern(C) GVariant* function(GSettingsBackend* backend, const(char)* key, GVariantType* expectedType, int defaultValue) read;
7897 	/** */
7898 	extern(C) int function(GSettingsBackend* backend, const(char)* key) getWritable;
7899 	/** */
7900 	extern(C) int function(GSettingsBackend* backend, const(char)* key, GVariant* value, void* originTag) write;
7901 	/** */
7902 	extern(C) int function(GSettingsBackend* backend, GTree* tree, void* originTag) writeTree;
7903 	/** */
7904 	extern(C) void function(GSettingsBackend* backend, const(char)* key, void* originTag) reset;
7905 	/** */
7906 	extern(C) void function(GSettingsBackend* backend, const(char)* name) subscribe;
7907 	/** */
7908 	extern(C) void function(GSettingsBackend* backend, const(char)* name) unsubscribe;
7909 	/** */
7910 	extern(C) void function(GSettingsBackend* backend) sync;
7911 	/** */
7912 	extern(C) GPermission* function(GSettingsBackend* backend, const(char)* path) getPermission;
7913 	/** */
7914 	extern(C) GVariant* function(GSettingsBackend* backend, const(char)* key, GVariantType* expectedType) readUserValue;
7915 	void*[23] padding;
7916 }
7917 
7918 struct GSettingsBackendPrivate;
7919 
7920 struct GSettingsClass
7921 {
7922 	GObjectClass parentClass;
7923 	/** */
7924 	extern(C) void function(GSettings* settings, const(char)* key) writableChanged;
7925 	/** */
7926 	extern(C) void function(GSettings* settings, const(char)* key) changed;
7927 	/** */
7928 	extern(C) int function(GSettings* settings, GQuark key) writableChangeEvent;
7929 	/** */
7930 	extern(C) int function(GSettings* settings, GQuark* keys, int nKeys) changeEvent;
7931 	void*[20] padding;
7932 }
7933 
7934 struct GSettingsPrivate;
7935 
7936 struct GSettingsSchema;
7937 
7938 struct GSettingsSchemaKey;
7939 
7940 struct GSettingsSchemaSource;
7941 
7942 struct GSimpleAction;
7943 
7944 struct GSimpleActionGroup
7945 {
7946 	GObject parentInstance;
7947 	GSimpleActionGroupPrivate* priv;
7948 }
7949 
7950 struct GSimpleActionGroupClass
7951 {
7952 	GObjectClass parentClass;
7953 	void*[12] padding;
7954 }
7955 
7956 struct GSimpleActionGroupPrivate;
7957 
7958 struct GSimpleAsyncResult;
7959 
7960 struct GSimpleAsyncResultClass;
7961 
7962 struct GSimpleIOStream;
7963 
7964 struct GSimplePermission;
7965 
7966 struct GSimpleProxyResolver
7967 {
7968 	GObject parentInstance;
7969 	GSimpleProxyResolverPrivate* priv;
7970 }
7971 
7972 struct GSimpleProxyResolverClass
7973 {
7974 	GObjectClass parentClass;
7975 	/** */
7976 	extern(C) void function() GReserved1;
7977 	/** */
7978 	extern(C) void function() GReserved2;
7979 	/** */
7980 	extern(C) void function() GReserved3;
7981 	/** */
7982 	extern(C) void function() GReserved4;
7983 	/** */
7984 	extern(C) void function() GReserved5;
7985 }
7986 
7987 struct GSimpleProxyResolverPrivate;
7988 
7989 struct GSocket
7990 {
7991 	GObject parentInstance;
7992 	GSocketPrivate* priv;
7993 }
7994 
7995 struct GSocketAddress
7996 {
7997 	GObject parentInstance;
7998 }
7999 
8000 struct GSocketAddressClass
8001 {
8002 	GObjectClass parentClass;
8003 	/**
8004 	 *
8005 	 * Params:
8006 	 *     address = a #GSocketAddress
8007 	 * Returns: the socket family type of @address
8008 	 */
8009 	extern(C) GSocketFamily function(GSocketAddress* address) getFamily;
8010 	/**
8011 	 *
8012 	 * Params:
8013 	 *     address = a #GSocketAddress
8014 	 * Returns: the size of the native struct sockaddr that
8015 	 *     @address represents
8016 	 */
8017 	extern(C) ptrdiff_t function(GSocketAddress* address) getNativeSize;
8018 	/**
8019 	 *
8020 	 * Params:
8021 	 *     address = a #GSocketAddress
8022 	 *     dest = a pointer to a memory location that will contain the native
8023 	 *         struct sockaddr
8024 	 *     destlen = the size of @dest. Must be at least as large as
8025 	 *         g_socket_address_get_native_size()
8026 	 * Returns: %TRUE if @dest was filled in, %FALSE on error
8027 	 *
8028 	 * Throws: GException on failure.
8029 	 */
8030 	extern(C) int function(GSocketAddress* address, void* dest, size_t destlen, GError** err) toNative;
8031 }
8032 
8033 struct GSocketAddressEnumerator
8034 {
8035 	GObject parentInstance;
8036 }
8037 
8038 /**
8039  * Class structure for #GSocketAddressEnumerator.
8040  */
8041 struct GSocketAddressEnumeratorClass
8042 {
8043 	GObjectClass parentClass;
8044 	/**
8045 	 *
8046 	 * Params:
8047 	 *     enumerator = a #GSocketAddressEnumerator
8048 	 *     cancellable = optional #GCancellable object, %NULL to ignore.
8049 	 * Returns: a #GSocketAddress (owned by the caller), or %NULL on
8050 	 *     error (in which case *@error will be set) or if there are no
8051 	 *     more addresses.
8052 	 *
8053 	 * Throws: GException on failure.
8054 	 */
8055 	extern(C) GSocketAddress* function(GSocketAddressEnumerator* enumerator, GCancellable* cancellable, GError** err) next;
8056 	/** */
8057 	extern(C) void function(GSocketAddressEnumerator* enumerator, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) nextAsync;
8058 	/**
8059 	 *
8060 	 * Params:
8061 	 *     enumerator = a #GSocketAddressEnumerator
8062 	 *     result = a #GAsyncResult
8063 	 * Returns: a #GSocketAddress (owned by the caller), or %NULL on
8064 	 *     error (in which case *@error will be set) or if there are no
8065 	 *     more addresses.
8066 	 *
8067 	 * Throws: GException on failure.
8068 	 */
8069 	extern(C) GSocketAddress* function(GSocketAddressEnumerator* enumerator, GAsyncResult* result, GError** err) nextFinish;
8070 }
8071 
8072 struct GSocketClass
8073 {
8074 	GObjectClass parentClass;
8075 	/** */
8076 	extern(C) void function() GReserved1;
8077 	/** */
8078 	extern(C) void function() GReserved2;
8079 	/** */
8080 	extern(C) void function() GReserved3;
8081 	/** */
8082 	extern(C) void function() GReserved4;
8083 	/** */
8084 	extern(C) void function() GReserved5;
8085 	/** */
8086 	extern(C) void function() GReserved6;
8087 	/** */
8088 	extern(C) void function() GReserved7;
8089 	/** */
8090 	extern(C) void function() GReserved8;
8091 	/** */
8092 	extern(C) void function() GReserved9;
8093 	/** */
8094 	extern(C) void function() GReserved10;
8095 }
8096 
8097 struct GSocketClient
8098 {
8099 	GObject parentInstance;
8100 	GSocketClientPrivate* priv;
8101 }
8102 
8103 struct GSocketClientClass
8104 {
8105 	GObjectClass parentClass;
8106 	/** */
8107 	extern(C) void function(GSocketClient* client, GSocketClientEvent event, GSocketConnectable* connectable, GIOStream* connection) event;
8108 	/** */
8109 	extern(C) void function() GReserved1;
8110 	/** */
8111 	extern(C) void function() GReserved2;
8112 	/** */
8113 	extern(C) void function() GReserved3;
8114 	/** */
8115 	extern(C) void function() GReserved4;
8116 }
8117 
8118 struct GSocketClientPrivate;
8119 
8120 struct GSocketConnectable;
8121 
8122 /**
8123  * Provides an interface for returning a #GSocketAddressEnumerator
8124  * and #GProxyAddressEnumerator
8125  */
8126 struct GSocketConnectableIface
8127 {
8128 	/**
8129 	 * The parent interface.
8130 	 */
8131 	GTypeInterface gIface;
8132 	/**
8133 	 *
8134 	 * Params:
8135 	 *     connectable = a #GSocketConnectable
8136 	 * Returns: a new #GSocketAddressEnumerator.
8137 	 */
8138 	extern(C) GSocketAddressEnumerator* function(GSocketConnectable* connectable) enumerate;
8139 	/**
8140 	 *
8141 	 * Params:
8142 	 *     connectable = a #GSocketConnectable
8143 	 * Returns: a new #GSocketAddressEnumerator.
8144 	 */
8145 	extern(C) GSocketAddressEnumerator* function(GSocketConnectable* connectable) proxyEnumerate;
8146 	/**
8147 	 *
8148 	 * Params:
8149 	 *     connectable = a #GSocketConnectable
8150 	 * Returns: the formatted string
8151 	 */
8152 	extern(C) char* function(GSocketConnectable* connectable) toString;
8153 }
8154 
8155 struct GSocketConnection
8156 {
8157 	GIOStream parentInstance;
8158 	GSocketConnectionPrivate* priv;
8159 }
8160 
8161 struct GSocketConnectionClass
8162 {
8163 	GIOStreamClass parentClass;
8164 	/** */
8165 	extern(C) void function() GReserved1;
8166 	/** */
8167 	extern(C) void function() GReserved2;
8168 	/** */
8169 	extern(C) void function() GReserved3;
8170 	/** */
8171 	extern(C) void function() GReserved4;
8172 	/** */
8173 	extern(C) void function() GReserved5;
8174 	/** */
8175 	extern(C) void function() GReserved6;
8176 }
8177 
8178 struct GSocketConnectionPrivate;
8179 
8180 struct GSocketControlMessage
8181 {
8182 	GObject parentInstance;
8183 	GSocketControlMessagePrivate* priv;
8184 }
8185 
8186 /**
8187  * Class structure for #GSocketControlMessage.
8188  */
8189 struct GSocketControlMessageClass
8190 {
8191 	GObjectClass parentClass;
8192 	/**
8193 	 *
8194 	 * Params:
8195 	 *     message = a #GSocketControlMessage
8196 	 * Returns: The number of bytes required.
8197 	 */
8198 	extern(C) size_t function(GSocketControlMessage* message) getSize;
8199 	/**
8200 	 *
8201 	 * Params:
8202 	 *     message = a #GSocketControlMessage
8203 	 * Returns: an integer describing the level
8204 	 */
8205 	extern(C) int function(GSocketControlMessage* message) getLevel;
8206 	/** */
8207 	extern(C) int function(GSocketControlMessage* message) getType;
8208 	/** */
8209 	extern(C) void function(GSocketControlMessage* message, void* data) serialize;
8210 	/** */
8211 	extern(C) GSocketControlMessage* function(int level, int type, size_t size, void* data) deserialize;
8212 	/** */
8213 	extern(C) void function() GReserved1;
8214 	/** */
8215 	extern(C) void function() GReserved2;
8216 	/** */
8217 	extern(C) void function() GReserved3;
8218 	/** */
8219 	extern(C) void function() GReserved4;
8220 	/** */
8221 	extern(C) void function() GReserved5;
8222 }
8223 
8224 struct GSocketControlMessagePrivate;
8225 
8226 struct GSocketListener
8227 {
8228 	GObject parentInstance;
8229 	GSocketListenerPrivate* priv;
8230 }
8231 
8232 /**
8233  * Class structure for #GSocketListener.
8234  */
8235 struct GSocketListenerClass
8236 {
8237 	GObjectClass parentClass;
8238 	/** */
8239 	extern(C) void function(GSocketListener* listener) changed;
8240 	/** */
8241 	extern(C) void function(GSocketListener* listener, GSocketListenerEvent event, GSocket* socket) event;
8242 	/** */
8243 	extern(C) void function() GReserved2;
8244 	/** */
8245 	extern(C) void function() GReserved3;
8246 	/** */
8247 	extern(C) void function() GReserved4;
8248 	/** */
8249 	extern(C) void function() GReserved5;
8250 	/** */
8251 	extern(C) void function() GReserved6;
8252 }
8253 
8254 struct GSocketListenerPrivate;
8255 
8256 struct GSocketPrivate;
8257 
8258 struct GSocketService
8259 {
8260 	GSocketListener parentInstance;
8261 	GSocketServicePrivate* priv;
8262 }
8263 
8264 /**
8265  * Class structure for #GSocketService.
8266  */
8267 struct GSocketServiceClass
8268 {
8269 	GSocketListenerClass parentClass;
8270 	/** */
8271 	extern(C) int function(GSocketService* service, GSocketConnection* connection, GObject* sourceObject) incoming;
8272 	/** */
8273 	extern(C) void function() GReserved1;
8274 	/** */
8275 	extern(C) void function() GReserved2;
8276 	/** */
8277 	extern(C) void function() GReserved3;
8278 	/** */
8279 	extern(C) void function() GReserved4;
8280 	/** */
8281 	extern(C) void function() GReserved5;
8282 	/** */
8283 	extern(C) void function() GReserved6;
8284 }
8285 
8286 struct GSocketServicePrivate;
8287 
8288 struct GSrvTarget;
8289 
8290 struct GStaticResource
8291 {
8292 	ubyte* data;
8293 	size_t dataLen;
8294 	GResource* resource;
8295 	GStaticResource* next;
8296 	void* padding;
8297 }
8298 
8299 struct GSubprocess;
8300 
8301 struct GSubprocessLauncher;
8302 
8303 struct GTask;
8304 
8305 struct GTaskClass;
8306 
8307 struct GTcpConnection
8308 {
8309 	GSocketConnection parentInstance;
8310 	GTcpConnectionPrivate* priv;
8311 }
8312 
8313 struct GTcpConnectionClass
8314 {
8315 	GSocketConnectionClass parentClass;
8316 }
8317 
8318 struct GTcpConnectionPrivate;
8319 
8320 struct GTcpWrapperConnection
8321 {
8322 	GTcpConnection parentInstance;
8323 	GTcpWrapperConnectionPrivate* priv;
8324 }
8325 
8326 struct GTcpWrapperConnectionClass
8327 {
8328 	GTcpConnectionClass parentClass;
8329 }
8330 
8331 struct GTcpWrapperConnectionPrivate;
8332 
8333 struct GTestDBus;
8334 
8335 struct GThemedIcon;
8336 
8337 struct GThemedIconClass;
8338 
8339 struct GThreadedSocketService
8340 {
8341 	GSocketService parentInstance;
8342 	GThreadedSocketServicePrivate* priv;
8343 }
8344 
8345 struct GThreadedSocketServiceClass
8346 {
8347 	GSocketServiceClass parentClass;
8348 	/** */
8349 	extern(C) int function(GThreadedSocketService* service, GSocketConnection* connection, GObject* sourceObject) run;
8350 	/** */
8351 	extern(C) void function() GReserved1;
8352 	/** */
8353 	extern(C) void function() GReserved2;
8354 	/** */
8355 	extern(C) void function() GReserved3;
8356 	/** */
8357 	extern(C) void function() GReserved4;
8358 	/** */
8359 	extern(C) void function() GReserved5;
8360 }
8361 
8362 struct GThreadedSocketServicePrivate;
8363 
8364 struct GTlsBackend;
8365 
8366 /**
8367  * Provides an interface for describing TLS-related types.
8368  *
8369  * Since: 2.28
8370  */
8371 struct GTlsBackendInterface
8372 {
8373 	/**
8374 	 * The parent interface.
8375 	 */
8376 	GTypeInterface gIface;
8377 	/**
8378 	 *
8379 	 * Params:
8380 	 *     backend = the #GTlsBackend
8381 	 * Returns: whether or not TLS is supported
8382 	 */
8383 	extern(C) int function(GTlsBackend* backend) supportsTls;
8384 	/** */
8385 	extern(C) GType function() getCertificateType;
8386 	/** */
8387 	extern(C) GType function() getClientConnectionType;
8388 	/** */
8389 	extern(C) GType function() getServerConnectionType;
8390 	/** */
8391 	extern(C) GType function() getFileDatabaseType;
8392 	/**
8393 	 *
8394 	 * Params:
8395 	 *     backend = the #GTlsBackend
8396 	 * Returns: the default database, which should be
8397 	 *     unreffed when done.
8398 	 */
8399 	extern(C) GTlsDatabase* function(GTlsBackend* backend) getDefaultDatabase;
8400 	/**
8401 	 *
8402 	 * Params:
8403 	 *     backend = the #GTlsBackend
8404 	 * Returns: whether DTLS is supported
8405 	 */
8406 	extern(C) int function(GTlsBackend* backend) supportsDtls;
8407 	/** */
8408 	extern(C) GType function() getDtlsClientConnectionType;
8409 	/** */
8410 	extern(C) GType function() getDtlsServerConnectionType;
8411 }
8412 
8413 struct GTlsCertificate
8414 {
8415 	GObject parentInstance;
8416 	GTlsCertificatePrivate* priv;
8417 }
8418 
8419 struct GTlsCertificateClass
8420 {
8421 	GObjectClass parentClass;
8422 	/**
8423 	 *
8424 	 * Params:
8425 	 *     cert = a #GTlsCertificate
8426 	 *     identity = the expected peer identity
8427 	 *     trustedCa = the certificate of a trusted authority
8428 	 * Returns: the appropriate #GTlsCertificateFlags
8429 	 */
8430 	extern(C) GTlsCertificateFlags function(GTlsCertificate* cert, GSocketConnectable* identity, GTlsCertificate* trustedCa) verify;
8431 	void*[8] padding;
8432 }
8433 
8434 struct GTlsCertificatePrivate;
8435 
8436 struct GTlsClientConnection;
8437 
8438 /**
8439  * vtable for a #GTlsClientConnection implementation.
8440  *
8441  * Since: 2.26
8442  */
8443 struct GTlsClientConnectionInterface
8444 {
8445 	/**
8446 	 * The parent interface.
8447 	 */
8448 	GTypeInterface gIface;
8449 	/** */
8450 	extern(C) void function(GTlsClientConnection* conn, GTlsClientConnection* source) copySessionState;
8451 }
8452 
8453 struct GTlsConnection
8454 {
8455 	GIOStream parentInstance;
8456 	GTlsConnectionPrivate* priv;
8457 }
8458 
8459 /**
8460  * The class structure for the #GTlsConnection type.
8461  *
8462  * Since: 2.28
8463  */
8464 struct GTlsConnectionClass
8465 {
8466 	/**
8467 	 * The parent class.
8468 	 */
8469 	GIOStreamClass parentClass;
8470 	/** */
8471 	extern(C) int function(GTlsConnection* connection, GTlsCertificate* peerCert, GTlsCertificateFlags errors) acceptCertificate;
8472 	/**
8473 	 *
8474 	 * Params:
8475 	 *     conn = a #GTlsConnection
8476 	 *     cancellable = a #GCancellable, or %NULL
8477 	 * Returns: success or failure
8478 	 *
8479 	 * Throws: GException on failure.
8480 	 */
8481 	extern(C) int function(GTlsConnection* conn, GCancellable* cancellable, GError** err) handshake;
8482 	/** */
8483 	extern(C) void function(GTlsConnection* conn, int ioPriority, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) handshakeAsync;
8484 	/**
8485 	 *
8486 	 * Params:
8487 	 *     conn = a #GTlsConnection
8488 	 *     result = a #GAsyncResult.
8489 	 * Returns: %TRUE on success, %FALSE on failure, in which
8490 	 *     case @error will be set.
8491 	 *
8492 	 * Throws: GException on failure.
8493 	 */
8494 	extern(C) int function(GTlsConnection* conn, GAsyncResult* result, GError** err) handshakeFinish;
8495 	/** */
8496 	extern(C) int function(GTlsConnection* conn, GTlsChannelBindingType type, GByteArray* data, GError** err) getBindingData;
8497 	/**
8498 	 *
8499 	 * Params:
8500 	 *     conn = a #GTlsConnection
8501 	 * Returns: the negotiated protocol, or %NULL
8502 	 */
8503 	extern(C) const(char)* function(GTlsConnection* conn) getNegotiatedProtocol;
8504 	void*[6] padding;
8505 }
8506 
8507 struct GTlsConnectionPrivate;
8508 
8509 struct GTlsDatabase
8510 {
8511 	GObject parentInstance;
8512 	GTlsDatabasePrivate* priv;
8513 }
8514 
8515 /**
8516  * The class for #GTlsDatabase. Derived classes should implement the various
8517  * virtual methods. _async and _finish methods have a default
8518  * implementation that runs the corresponding sync method in a thread.
8519  *
8520  * Since: 2.30
8521  */
8522 struct GTlsDatabaseClass
8523 {
8524 	GObjectClass parentClass;
8525 	/**
8526 	 *
8527 	 * Params:
8528 	 *     self = a #GTlsDatabase
8529 	 *     chain = a #GTlsCertificate chain
8530 	 *     purpose = the purpose that this certificate chain will be used for.
8531 	 *     identity = the expected peer identity
8532 	 *     interaction = used to interact with the user if necessary
8533 	 *     flags = additional verify flags
8534 	 *     cancellable = a #GCancellable, or %NULL
8535 	 * Returns: the appropriate #GTlsCertificateFlags which represents the
8536 	 *     result of verification.
8537 	 *
8538 	 * Throws: GException on failure.
8539 	 */
8540 	extern(C) GTlsCertificateFlags function(GTlsDatabase* self, GTlsCertificate* chain, const(char)* purpose, GSocketConnectable* identity, GTlsInteraction* interaction, GTlsDatabaseVerifyFlags flags, GCancellable* cancellable, GError** err) verifyChain;
8541 	/** */
8542 	extern(C) void function(GTlsDatabase* self, GTlsCertificate* chain, const(char)* purpose, GSocketConnectable* identity, GTlsInteraction* interaction, GTlsDatabaseVerifyFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) verifyChainAsync;
8543 	/**
8544 	 *
8545 	 * Params:
8546 	 *     self = a #GTlsDatabase
8547 	 *     result = a #GAsyncResult.
8548 	 * Returns: the appropriate #GTlsCertificateFlags which represents the
8549 	 *     result of verification.
8550 	 *
8551 	 * Throws: GException on failure.
8552 	 */
8553 	extern(C) GTlsCertificateFlags function(GTlsDatabase* self, GAsyncResult* result, GError** err) verifyChainFinish;
8554 	/**
8555 	 *
8556 	 * Params:
8557 	 *     self = a #GTlsDatabase
8558 	 *     certificate = certificate for which to create a handle.
8559 	 * Returns: a newly allocated string containing the
8560 	 *     handle.
8561 	 */
8562 	extern(C) char* function(GTlsDatabase* self, GTlsCertificate* certificate) createCertificateHandle;
8563 	/**
8564 	 *
8565 	 * Params:
8566 	 *     self = a #GTlsDatabase
8567 	 *     handle = a certificate handle
8568 	 *     interaction = used to interact with the user if necessary
8569 	 *     flags = Flags which affect the lookup.
8570 	 *     cancellable = a #GCancellable, or %NULL
8571 	 * Returns: a newly allocated
8572 	 *     #GTlsCertificate, or %NULL. Use g_object_unref() to release the certificate.
8573 	 *
8574 	 * Throws: GException on failure.
8575 	 */
8576 	extern(C) GTlsCertificate* function(GTlsDatabase* self, const(char)* handle, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GError** err) lookupCertificateForHandle;
8577 	/** */
8578 	extern(C) void function(GTlsDatabase* self, const(char)* handle, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupCertificateForHandleAsync;
8579 	/**
8580 	 *
8581 	 * Params:
8582 	 *     self = a #GTlsDatabase
8583 	 *     result = a #GAsyncResult.
8584 	 * Returns: a newly allocated #GTlsCertificate object.
8585 	 *     Use g_object_unref() to release the certificate.
8586 	 *
8587 	 * Throws: GException on failure.
8588 	 */
8589 	extern(C) GTlsCertificate* function(GTlsDatabase* self, GAsyncResult* result, GError** err) lookupCertificateForHandleFinish;
8590 	/**
8591 	 *
8592 	 * Params:
8593 	 *     self = a #GTlsDatabase
8594 	 *     certificate = a #GTlsCertificate
8595 	 *     interaction = used to interact with the user if necessary
8596 	 *     flags = flags which affect the lookup operation
8597 	 *     cancellable = a #GCancellable, or %NULL
8598 	 * Returns: a newly allocated issuer #GTlsCertificate,
8599 	 *     or %NULL. Use g_object_unref() to release the certificate.
8600 	 *
8601 	 * Throws: GException on failure.
8602 	 */
8603 	extern(C) GTlsCertificate* function(GTlsDatabase* self, GTlsCertificate* certificate, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GError** err) lookupCertificateIssuer;
8604 	/** */
8605 	extern(C) void function(GTlsDatabase* self, GTlsCertificate* certificate, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupCertificateIssuerAsync;
8606 	/**
8607 	 *
8608 	 * Params:
8609 	 *     self = a #GTlsDatabase
8610 	 *     result = a #GAsyncResult.
8611 	 * Returns: a newly allocated issuer #GTlsCertificate,
8612 	 *     or %NULL. Use g_object_unref() to release the certificate.
8613 	 *
8614 	 * Throws: GException on failure.
8615 	 */
8616 	extern(C) GTlsCertificate* function(GTlsDatabase* self, GAsyncResult* result, GError** err) lookupCertificateIssuerFinish;
8617 	/**
8618 	 *
8619 	 * Params:
8620 	 *     self = a #GTlsDatabase
8621 	 *     issuerRawDn = a #GByteArray which holds the DER encoded issuer DN.
8622 	 *     interaction = used to interact with the user if necessary
8623 	 *     flags = Flags which affect the lookup operation.
8624 	 *     cancellable = a #GCancellable, or %NULL
8625 	 * Returns: a newly allocated list of #GTlsCertificate
8626 	 *     objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
8627 	 *
8628 	 * Throws: GException on failure.
8629 	 */
8630 	extern(C) GList* function(GTlsDatabase* self, GByteArray* issuerRawDn, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GError** err) lookupCertificatesIssuedBy;
8631 	/** */
8632 	extern(C) void function(GTlsDatabase* self, GByteArray* issuerRawDn, GTlsInteraction* interaction, GTlsDatabaseLookupFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) lookupCertificatesIssuedByAsync;
8633 	/**
8634 	 *
8635 	 * Params:
8636 	 *     self = a #GTlsDatabase
8637 	 *     result = a #GAsyncResult.
8638 	 * Returns: a newly allocated list of #GTlsCertificate
8639 	 *     objects. Use g_object_unref() on each certificate, and g_list_free() on the release the list.
8640 	 *
8641 	 * Throws: GException on failure.
8642 	 */
8643 	extern(C) GList* function(GTlsDatabase* self, GAsyncResult* result, GError** err) lookupCertificatesIssuedByFinish;
8644 	void*[16] padding;
8645 }
8646 
8647 struct GTlsDatabasePrivate;
8648 
8649 struct GTlsFileDatabase;
8650 
8651 /**
8652  * Provides an interface for #GTlsFileDatabase implementations.
8653  */
8654 struct GTlsFileDatabaseInterface
8655 {
8656 	/**
8657 	 * The parent interface.
8658 	 */
8659 	GTypeInterface gIface;
8660 	void*[8] padding;
8661 }
8662 
8663 struct GTlsInteraction
8664 {
8665 	GObject parentInstance;
8666 	GTlsInteractionPrivate* priv;
8667 }
8668 
8669 /**
8670  * The class for #GTlsInteraction. Derived classes implement the various
8671  * virtual interaction methods to handle TLS interactions.
8672  *
8673  * Derived classes can choose to implement whichever interactions methods they'd
8674  * like to support by overriding those virtual methods in their class
8675  * initialization function. If a derived class implements an async method,
8676  * it must also implement the corresponding finish method.
8677  *
8678  * The synchronous interaction methods should implement to display modal dialogs,
8679  * and the asynchronous methods to display modeless dialogs.
8680  *
8681  * If the user cancels an interaction, then the result should be
8682  * %G_TLS_INTERACTION_FAILED and the error should be set with a domain of
8683  * %G_IO_ERROR and code of %G_IO_ERROR_CANCELLED.
8684  *
8685  * Since: 2.30
8686  */
8687 struct GTlsInteractionClass
8688 {
8689 	GObjectClass parentClass;
8690 	/**
8691 	 *
8692 	 * Params:
8693 	 *     interaction = a #GTlsInteraction object
8694 	 *     password = a #GTlsPassword object
8695 	 *     cancellable = an optional #GCancellable cancellation object
8696 	 * Returns: The status of the ask password interaction.
8697 	 *
8698 	 * Throws: GException on failure.
8699 	 */
8700 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GTlsPassword* password, GCancellable* cancellable, GError** err) askPassword;
8701 	/** */
8702 	extern(C) void function(GTlsInteraction* interaction, GTlsPassword* password, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) askPasswordAsync;
8703 	/**
8704 	 *
8705 	 * Params:
8706 	 *     interaction = a #GTlsInteraction object
8707 	 *     result = the result passed to the callback
8708 	 * Returns: The status of the ask password interaction.
8709 	 *
8710 	 * Throws: GException on failure.
8711 	 */
8712 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GAsyncResult* result, GError** err) askPasswordFinish;
8713 	/**
8714 	 *
8715 	 * Params:
8716 	 *     interaction = a #GTlsInteraction object
8717 	 *     connection = a #GTlsConnection object
8718 	 *     flags = flags providing more information about the request
8719 	 *     cancellable = an optional #GCancellable cancellation object
8720 	 * Returns: The status of the request certificate interaction.
8721 	 *
8722 	 * Throws: GException on failure.
8723 	 */
8724 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GTlsConnection* connection, GTlsCertificateRequestFlags flags, GCancellable* cancellable, GError** err) requestCertificate;
8725 	/** */
8726 	extern(C) void function(GTlsInteraction* interaction, GTlsConnection* connection, GTlsCertificateRequestFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) requestCertificateAsync;
8727 	/**
8728 	 *
8729 	 * Params:
8730 	 *     interaction = a #GTlsInteraction object
8731 	 *     result = the result passed to the callback
8732 	 * Returns: The status of the request certificate interaction.
8733 	 *
8734 	 * Throws: GException on failure.
8735 	 */
8736 	extern(C) GTlsInteractionResult function(GTlsInteraction* interaction, GAsyncResult* result, GError** err) requestCertificateFinish;
8737 	void*[21] padding;
8738 }
8739 
8740 struct GTlsInteractionPrivate;
8741 
8742 struct GTlsPassword
8743 {
8744 	GObject parentInstance;
8745 	GTlsPasswordPrivate* priv;
8746 }
8747 
8748 /**
8749  * Class structure for #GTlsPassword.
8750  */
8751 struct GTlsPasswordClass
8752 {
8753 	GObjectClass parentClass;
8754 	/**
8755 	 *
8756 	 * Params:
8757 	 *     password = a #GTlsPassword object
8758 	 * Returns: The password value (owned by the password object).
8759 	 */
8760 	extern(C) char* function(GTlsPassword* password, size_t* length) getValue;
8761 	/** */
8762 	extern(C) void function(GTlsPassword* password, char* value, ptrdiff_t length, GDestroyNotify destroy) setValue;
8763 	/** */
8764 	extern(C) const(char)* function(GTlsPassword* password) getDefaultWarning;
8765 	void*[4] padding;
8766 }
8767 
8768 struct GTlsPasswordPrivate;
8769 
8770 struct GTlsServerConnection;
8771 
8772 /**
8773  * vtable for a #GTlsServerConnection implementation.
8774  *
8775  * Since: 2.26
8776  */
8777 struct GTlsServerConnectionInterface
8778 {
8779 	/**
8780 	 * The parent interface.
8781 	 */
8782 	GTypeInterface gIface;
8783 }
8784 
8785 struct GUnixConnection
8786 {
8787 	GSocketConnection parentInstance;
8788 	GUnixConnectionPrivate* priv;
8789 }
8790 
8791 struct GUnixConnectionClass
8792 {
8793 	GSocketConnectionClass parentClass;
8794 }
8795 
8796 struct GUnixConnectionPrivate;
8797 
8798 struct GUnixCredentialsMessage
8799 {
8800 	GSocketControlMessage parentInstance;
8801 	GUnixCredentialsMessagePrivate* priv;
8802 }
8803 
8804 /**
8805  * Class structure for #GUnixCredentialsMessage.
8806  *
8807  * Since: 2.26
8808  */
8809 struct GUnixCredentialsMessageClass
8810 {
8811 	GSocketControlMessageClass parentClass;
8812 	/** */
8813 	extern(C) void function() GReserved1;
8814 	/** */
8815 	extern(C) void function() GReserved2;
8816 }
8817 
8818 struct GUnixCredentialsMessagePrivate;
8819 
8820 struct GUnixFDList
8821 {
8822 	GObject parentInstance;
8823 	GUnixFDListPrivate* priv;
8824 }
8825 
8826 struct GUnixFDListClass
8827 {
8828 	GObjectClass parentClass;
8829 	/** */
8830 	extern(C) void function() GReserved1;
8831 	/** */
8832 	extern(C) void function() GReserved2;
8833 	/** */
8834 	extern(C) void function() GReserved3;
8835 	/** */
8836 	extern(C) void function() GReserved4;
8837 	/** */
8838 	extern(C) void function() GReserved5;
8839 }
8840 
8841 struct GUnixFDListPrivate;
8842 
8843 struct GUnixFDMessage
8844 {
8845 	GSocketControlMessage parentInstance;
8846 	GUnixFDMessagePrivate* priv;
8847 }
8848 
8849 struct GUnixFDMessageClass
8850 {
8851 	GSocketControlMessageClass parentClass;
8852 	/** */
8853 	extern(C) void function() GReserved1;
8854 	/** */
8855 	extern(C) void function() GReserved2;
8856 }
8857 
8858 struct GUnixFDMessagePrivate;
8859 
8860 struct GUnixInputStream
8861 {
8862 	GInputStream parentInstance;
8863 	GUnixInputStreamPrivate* priv;
8864 }
8865 
8866 struct GUnixInputStreamClass
8867 {
8868 	GInputStreamClass parentClass;
8869 	/** */
8870 	extern(C) void function() GReserved1;
8871 	/** */
8872 	extern(C) void function() GReserved2;
8873 	/** */
8874 	extern(C) void function() GReserved3;
8875 	/** */
8876 	extern(C) void function() GReserved4;
8877 	/** */
8878 	extern(C) void function() GReserved5;
8879 }
8880 
8881 struct GUnixInputStreamPrivate;
8882 
8883 /**
8884  * Defines a Unix mount entry (e.g. <filename>/media/cdrom</filename>).
8885  * This corresponds roughly to a mtab entry.
8886  */
8887 struct GUnixMountEntry;
8888 
8889 struct GUnixMountMonitor;
8890 
8891 struct GUnixMountMonitorClass;
8892 
8893 struct GUnixMountPoint;
8894 
8895 struct GUnixOutputStream
8896 {
8897 	GOutputStream parentInstance;
8898 	GUnixOutputStreamPrivate* priv;
8899 }
8900 
8901 struct GUnixOutputStreamClass
8902 {
8903 	GOutputStreamClass parentClass;
8904 	/** */
8905 	extern(C) void function() GReserved1;
8906 	/** */
8907 	extern(C) void function() GReserved2;
8908 	/** */
8909 	extern(C) void function() GReserved3;
8910 	/** */
8911 	extern(C) void function() GReserved4;
8912 	/** */
8913 	extern(C) void function() GReserved5;
8914 }
8915 
8916 struct GUnixOutputStreamPrivate;
8917 
8918 struct GUnixSocketAddress
8919 {
8920 	GSocketAddress parentInstance;
8921 	GUnixSocketAddressPrivate* priv;
8922 }
8923 
8924 struct GUnixSocketAddressClass
8925 {
8926 	GSocketAddressClass parentClass;
8927 }
8928 
8929 struct GUnixSocketAddressPrivate;
8930 
8931 struct GVfs
8932 {
8933 	GObject parentInstance;
8934 }
8935 
8936 struct GVfsClass
8937 {
8938 	GObjectClass parentClass;
8939 	/**
8940 	 *
8941 	 * Params:
8942 	 *     vfs = a #GVfs.
8943 	 * Returns: %TRUE if construction of the @vfs was successful
8944 	 *     and it is now active.
8945 	 */
8946 	extern(C) int function(GVfs* vfs) isActive;
8947 	/**
8948 	 *
8949 	 * Params:
8950 	 *     vfs = a #GVfs.
8951 	 *     path = a string containing a VFS path.
8952 	 * Returns: a #GFile.
8953 	 *     Free the returned object with g_object_unref().
8954 	 */
8955 	extern(C) GFile* function(GVfs* vfs, const(char)* path) getFileForPath;
8956 	/**
8957 	 *
8958 	 * Params:
8959 	 *     vfs = a#GVfs.
8960 	 *     uri = a string containing a URI
8961 	 * Returns: a #GFile.
8962 	 *     Free the returned object with g_object_unref().
8963 	 */
8964 	extern(C) GFile* function(GVfs* vfs, const(char)* uri) getFileForUri;
8965 	/**
8966 	 *
8967 	 * Params:
8968 	 *     vfs = a #GVfs.
8969 	 * Returns: a %NULL-terminated array of strings.
8970 	 *     The returned array belongs to GIO and must
8971 	 *     not be freed or modified.
8972 	 */
8973 	extern(C) char** function(GVfs* vfs) getSupportedUriSchemes;
8974 	/**
8975 	 *
8976 	 * Params:
8977 	 *     vfs = a #GVfs.
8978 	 *     parseName = a string to be parsed by the VFS module.
8979 	 * Returns: a #GFile for the given @parse_name.
8980 	 *     Free the returned object with g_object_unref().
8981 	 */
8982 	extern(C) GFile* function(GVfs* vfs, const(char)* parseName) parseName;
8983 	/** */
8984 	extern(C) void function(GVfs* vfs, const(char)* filename, ulong device, GFileAttributeMatcher* attributeMatcher, GFileInfo* info, GCancellable* cancellable, void** extraData, GDestroyNotify* freeExtraData) localFileAddInfo;
8985 	/** */
8986 	extern(C) void function(GVfs* vfs, GFileAttributeInfoList* list) addWritableNamespaces;
8987 	/** */
8988 	extern(C) int function(GVfs* vfs, const(char)* filename, GFileInfo* info, GFileQueryInfoFlags flags, GCancellable* cancellable, GError** err) localFileSetAttributes;
8989 	/** */
8990 	extern(C) void function(GVfs* vfs, const(char)* filename) localFileRemoved;
8991 	/** */
8992 	extern(C) void function(GVfs* vfs, const(char)* source, const(char)* dest) localFileMoved;
8993 	/** */
8994 	extern(C) GIcon* function(GVfs* vfs, GVariant* value) deserializeIcon;
8995 	/** */
8996 	extern(C) void function() GReserved1;
8997 	/** */
8998 	extern(C) void function() GReserved2;
8999 	/** */
9000 	extern(C) void function() GReserved3;
9001 	/** */
9002 	extern(C) void function() GReserved4;
9003 	/** */
9004 	extern(C) void function() GReserved5;
9005 	/** */
9006 	extern(C) void function() GReserved6;
9007 }
9008 
9009 struct GVolume;
9010 
9011 /**
9012  * Interface for implementing operations for mountable volumes.
9013  */
9014 struct GVolumeIface
9015 {
9016 	/**
9017 	 * The parent interface.
9018 	 */
9019 	GTypeInterface gIface;
9020 	/** */
9021 	extern(C) void function(GVolume* volume) changed;
9022 	/** */
9023 	extern(C) void function(GVolume* volume) removed;
9024 	/**
9025 	 *
9026 	 * Params:
9027 	 *     volume = a #GVolume
9028 	 * Returns: the name for the given @volume. The returned string should
9029 	 *     be freed with g_free() when no longer needed.
9030 	 */
9031 	extern(C) char* function(GVolume* volume) getName;
9032 	/**
9033 	 *
9034 	 * Params:
9035 	 *     volume = a #GVolume
9036 	 * Returns: a #GIcon.
9037 	 *     The returned object should be unreffed with g_object_unref()
9038 	 *     when no longer needed.
9039 	 */
9040 	extern(C) GIcon* function(GVolume* volume) getIcon;
9041 	/**
9042 	 *
9043 	 * Params:
9044 	 *     volume = a #GVolume
9045 	 * Returns: the UUID for @volume or %NULL if no UUID
9046 	 *     can be computed.
9047 	 *     The returned string should be freed with g_free()
9048 	 *     when no longer needed.
9049 	 */
9050 	extern(C) char* function(GVolume* volume) getUuid;
9051 	/**
9052 	 *
9053 	 * Params:
9054 	 *     volume = a #GVolume
9055 	 * Returns: a #GDrive or %NULL if @volume is not
9056 	 *     associated with a drive. The returned object should be unreffed
9057 	 *     with g_object_unref() when no longer needed.
9058 	 */
9059 	extern(C) GDrive* function(GVolume* volume) getDrive;
9060 	/**
9061 	 *
9062 	 * Params:
9063 	 *     volume = a #GVolume
9064 	 * Returns: a #GMount or %NULL if @volume isn't mounted.
9065 	 *     The returned object should be unreffed with g_object_unref()
9066 	 *     when no longer needed.
9067 	 */
9068 	extern(C) GMount* function(GVolume* volume) getMount;
9069 	/**
9070 	 *
9071 	 * Params:
9072 	 *     volume = a #GVolume
9073 	 * Returns: %TRUE if the @volume can be mounted. %FALSE otherwise
9074 	 */
9075 	extern(C) int function(GVolume* volume) canMount;
9076 	/**
9077 	 *
9078 	 * Params:
9079 	 *     volume = a #GVolume
9080 	 * Returns: %TRUE if the @volume can be ejected. %FALSE otherwise
9081 	 */
9082 	extern(C) int function(GVolume* volume) canEject;
9083 	/** */
9084 	extern(C) void function(GVolume* volume, GMountMountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) mountFn;
9085 	/**
9086 	 *
9087 	 * Params:
9088 	 *     volume = a #GVolume
9089 	 *     result = a #GAsyncResult
9090 	 * Returns: %TRUE, %FALSE if operation failed
9091 	 *
9092 	 * Throws: GException on failure.
9093 	 */
9094 	extern(C) int function(GVolume* volume, GAsyncResult* result, GError** err) mountFinish;
9095 	/** */
9096 	extern(C) void function(GVolume* volume, GMountUnmountFlags flags, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) eject;
9097 	/**
9098 	 *
9099 	 * Params:
9100 	 *     volume = pointer to a #GVolume
9101 	 *     result = a #GAsyncResult
9102 	 * Returns: %TRUE, %FALSE if operation failed
9103 	 *
9104 	 * Throws: GException on failure.
9105 	 */
9106 	extern(C) int function(GVolume* volume, GAsyncResult* result, GError** err) ejectFinish;
9107 	/**
9108 	 *
9109 	 * Params:
9110 	 *     volume = a #GVolume
9111 	 *     kind = the kind of identifier to return
9112 	 * Returns: a newly allocated string containing the
9113 	 *     requested identifier, or %NULL if the #GVolume
9114 	 *     doesn't have this kind of identifier
9115 	 */
9116 	extern(C) char* function(GVolume* volume, const(char)* kind) getIdentifier;
9117 	/**
9118 	 *
9119 	 * Params:
9120 	 *     volume = a #GVolume
9121 	 * Returns: a %NULL-terminated array
9122 	 *     of strings containing kinds of identifiers. Use g_strfreev() to free.
9123 	 */
9124 	extern(C) char** function(GVolume* volume) enumerateIdentifiers;
9125 	/**
9126 	 *
9127 	 * Params:
9128 	 *     volume = a #GVolume
9129 	 * Returns: %TRUE if the volume should be automatically mounted
9130 	 */
9131 	extern(C) int function(GVolume* volume) shouldAutomount;
9132 	/**
9133 	 *
9134 	 * Params:
9135 	 *     volume = a #GVolume
9136 	 * Returns: the activation root of @volume
9137 	 *     or %NULL. Use g_object_unref() to free.
9138 	 */
9139 	extern(C) GFile* function(GVolume* volume) getActivationRoot;
9140 	/** */
9141 	extern(C) void function(GVolume* volume, GMountUnmountFlags flags, GMountOperation* mountOperation, GCancellable* cancellable, GAsyncReadyCallback callback, void* userData) ejectWithOperation;
9142 	/**
9143 	 *
9144 	 * Params:
9145 	 *     volume = a #GVolume
9146 	 *     result = a #GAsyncResult
9147 	 * Returns: %TRUE if the volume was successfully ejected. %FALSE otherwise
9148 	 *
9149 	 * Throws: GException on failure.
9150 	 */
9151 	extern(C) int function(GVolume* volume, GAsyncResult* result, GError** err) ejectWithOperationFinish;
9152 	/**
9153 	 *
9154 	 * Params:
9155 	 *     volume = a #GVolume
9156 	 * Returns: Sorting key for @volume or %NULL if no such key is available
9157 	 */
9158 	extern(C) const(char)* function(GVolume* volume) getSortKey;
9159 	/**
9160 	 *
9161 	 * Params:
9162 	 *     volume = a #GVolume
9163 	 * Returns: a #GIcon.
9164 	 *     The returned object should be unreffed with g_object_unref()
9165 	 *     when no longer needed.
9166 	 */
9167 	extern(C) GIcon* function(GVolume* volume) getSymbolicIcon;
9168 }
9169 
9170 struct GVolumeMonitor
9171 {
9172 	GObject parentInstance;
9173 	void* priv;
9174 }
9175 
9176 struct GVolumeMonitorClass
9177 {
9178 	GObjectClass parentClass;
9179 	/** */
9180 	extern(C) void function(GVolumeMonitor* volumeMonitor, GVolume* volume) volumeAdded;
9181 	/** */
9182 	extern(C) void function(GVolumeMonitor* volumeMonitor, GVolume* volume) volumeRemoved;
9183 	/** */
9184 	extern(C) void function(GVolumeMonitor* volumeMonitor, GVolume* volume) volumeChanged;
9185 	/** */
9186 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountAdded;
9187 	/** */
9188 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountRemoved;
9189 	/** */
9190 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountPreUnmount;
9191 	/** */
9192 	extern(C) void function(GVolumeMonitor* volumeMonitor, GMount* mount) mountChanged;
9193 	/** */
9194 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveConnected;
9195 	/** */
9196 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveDisconnected;
9197 	/** */
9198 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveChanged;
9199 	/** */
9200 	extern(C) int function() isSupported;
9201 	/**
9202 	 *
9203 	 * Params:
9204 	 *     volumeMonitor = a #GVolumeMonitor.
9205 	 * Returns: a #GList of connected #GDrive objects.
9206 	 */
9207 	extern(C) GList* function(GVolumeMonitor* volumeMonitor) getConnectedDrives;
9208 	/**
9209 	 *
9210 	 * Params:
9211 	 *     volumeMonitor = a #GVolumeMonitor.
9212 	 * Returns: a #GList of #GVolume objects.
9213 	 */
9214 	extern(C) GList* function(GVolumeMonitor* volumeMonitor) getVolumes;
9215 	/**
9216 	 *
9217 	 * Params:
9218 	 *     volumeMonitor = a #GVolumeMonitor.
9219 	 * Returns: a #GList of #GMount objects.
9220 	 */
9221 	extern(C) GList* function(GVolumeMonitor* volumeMonitor) getMounts;
9222 	/**
9223 	 *
9224 	 * Params:
9225 	 *     volumeMonitor = a #GVolumeMonitor.
9226 	 *     uuid = the UUID to look for
9227 	 * Returns: a #GVolume or %NULL if no such volume is available.
9228 	 *     Free the returned object with g_object_unref().
9229 	 */
9230 	extern(C) GVolume* function(GVolumeMonitor* volumeMonitor, const(char)* uuid) getVolumeForUuid;
9231 	/**
9232 	 *
9233 	 * Params:
9234 	 *     volumeMonitor = a #GVolumeMonitor.
9235 	 *     uuid = the UUID to look for
9236 	 * Returns: a #GMount or %NULL if no such mount is available.
9237 	 *     Free the returned object with g_object_unref().
9238 	 */
9239 	extern(C) GMount* function(GVolumeMonitor* volumeMonitor, const(char)* uuid) getMountForUuid;
9240 	/** */
9241 	extern(C) GVolume* function(GMount* mount, GVolumeMonitor* volumeMonitor) adoptOrphanMount;
9242 	/** */
9243 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveEjectButton;
9244 	/** */
9245 	extern(C) void function(GVolumeMonitor* volumeMonitor, GDrive* drive) driveStopButton;
9246 	/** */
9247 	extern(C) void function() GReserved1;
9248 	/** */
9249 	extern(C) void function() GReserved2;
9250 	/** */
9251 	extern(C) void function() GReserved3;
9252 	/** */
9253 	extern(C) void function() GReserved4;
9254 	/** */
9255 	extern(C) void function() GReserved5;
9256 	/** */
9257 	extern(C) void function() GReserved6;
9258 }
9259 
9260 struct GZlibCompressor;
9261 
9262 struct GZlibCompressorClass
9263 {
9264 	GObjectClass parentClass;
9265 }
9266 
9267 struct GZlibDecompressor;
9268 
9269 struct GZlibDecompressorClass
9270 {
9271 	GObjectClass parentClass;
9272 }
9273 
9274 /**
9275  * Type definition for a function that will be called back when an asynchronous
9276  * operation within GIO has been completed. #GAsyncReadyCallback
9277  * callbacks from #GTask are guaranteed to be invoked in a later
9278  * iteration of the
9279  * [thread-default main context][g-main-context-push-thread-default]
9280  * where the #GTask was created. All other users of
9281  * #GAsyncReadyCallback must likewise call it asynchronously in a
9282  * later iteration of the main context.
9283  *
9284  * The asynchronous operation is guaranteed to have held a reference to
9285  * @source_object from the time when the `*_async()` function was called, until
9286  * after this callback returns.
9287  *
9288  * Params:
9289  *     sourceObject = the object the asynchronous operation was started with.
9290  *     res = a #GAsyncResult.
9291  *     userData = user data passed to the callback.
9292  */
9293 public alias extern(C) void function(GObject* sourceObject, GAsyncResult* res, void* userData) GAsyncReadyCallback;
9294 
9295 /**
9296  * Invoked when a connection to a message bus has been obtained.
9297  *
9298  * Params:
9299  *     connection = The #GDBusConnection to a message bus.
9300  *     name = The name that is requested to be owned.
9301  *     userData = User data passed to g_bus_own_name().
9302  *
9303  * Since: 2.26
9304  */
9305 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusAcquiredCallback;
9306 
9307 /**
9308  * Invoked when the name is acquired.
9309  *
9310  * Params:
9311  *     connection = The #GDBusConnection on which to acquired the name.
9312  *     name = The name being owned.
9313  *     userData = User data passed to g_bus_own_name() or g_bus_own_name_on_connection().
9314  *
9315  * Since: 2.26
9316  */
9317 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusNameAcquiredCallback;
9318 
9319 /**
9320  * Invoked when the name being watched is known to have to have an owner.
9321  *
9322  * Params:
9323  *     connection = The #GDBusConnection the name is being watched on.
9324  *     name = The name being watched.
9325  *     nameOwner = Unique name of the owner of the name being watched.
9326  *     userData = User data passed to g_bus_watch_name().
9327  *
9328  * Since: 2.26
9329  */
9330 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, const(char)* nameOwner, void* userData) GBusNameAppearedCallback;
9331 
9332 /**
9333  * Invoked when the name is lost or @connection has been closed.
9334  *
9335  * Params:
9336  *     connection = The #GDBusConnection on which to acquire the name or %NULL if
9337  *         the connection was disconnected.
9338  *     name = The name being owned.
9339  *     userData = User data passed to g_bus_own_name() or g_bus_own_name_on_connection().
9340  *
9341  * Since: 2.26
9342  */
9343 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusNameLostCallback;
9344 
9345 /**
9346  * Invoked when the name being watched is known not to have to have an owner.
9347  *
9348  * This is also invoked when the #GDBusConnection on which the watch was
9349  * established has been closed.  In that case, @connection will be
9350  * %NULL.
9351  *
9352  * Params:
9353  *     connection = The #GDBusConnection the name is being watched on, or
9354  *         %NULL.
9355  *     name = The name being watched.
9356  *     userData = User data passed to g_bus_watch_name().
9357  *
9358  * Since: 2.26
9359  */
9360 public alias extern(C) void function(GDBusConnection* connection, const(char)* name, void* userData) GBusNameVanishedCallback;
9361 
9362 /**
9363  * This is the function type of the callback used for the #GSource
9364  * returned by g_cancellable_source_new().
9365  *
9366  * Params:
9367  *     cancellable = the #GCancellable
9368  *     userData = data passed in by the user.
9369  *
9370  * Returns: it should return %FALSE if the source should be removed.
9371  *
9372  * Since: 2.28
9373  */
9374 public alias extern(C) int function(GCancellable* cancellable, void* userData) GCancellableSourceFunc;
9375 
9376 /**
9377  * The type of the @get_property function in #GDBusInterfaceVTable.
9378  *
9379  * Params:
9380  *     connection = A #GDBusConnection.
9381  *     sender = The unique bus name of the remote caller.
9382  *     objectPath = The object path that the method was invoked on.
9383  *     interfaceName = The D-Bus interface name for the property.
9384  *     propertyName = The name of the property to get the value of.
9385  *     error = Return location for error.
9386  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_object().
9387  *
9388  * Returns: A #GVariant with the value for @property_name or %NULL if
9389  *     @error is set. If the returned #GVariant is floating, it is
9390  *     consumed - otherwise its reference count is decreased by one.
9391  *
9392  * Since: 2.26
9393  */
9394 public alias extern(C) GVariant* function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* propertyName, GError** error, void* userData) GDBusInterfaceGetPropertyFunc;
9395 
9396 /**
9397  * The type of the @method_call function in #GDBusInterfaceVTable.
9398  *
9399  * Params:
9400  *     connection = A #GDBusConnection.
9401  *     sender = The unique bus name of the remote caller.
9402  *     objectPath = The object path that the method was invoked on.
9403  *     interfaceName = The D-Bus interface name the method was invoked on.
9404  *     methodName = The name of the method that was invoked.
9405  *     parameters = A #GVariant tuple with parameters.
9406  *     invocation = A #GDBusMethodInvocation object that must be used to return a value or error.
9407  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_object().
9408  *
9409  * Since: 2.26
9410  */
9411 public alias extern(C) void function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* methodName, GVariant* parameters, GDBusMethodInvocation* invocation, void* userData) GDBusInterfaceMethodCallFunc;
9412 
9413 /**
9414  * The type of the @set_property function in #GDBusInterfaceVTable.
9415  *
9416  * Params:
9417  *     connection = A #GDBusConnection.
9418  *     sender = The unique bus name of the remote caller.
9419  *     objectPath = The object path that the method was invoked on.
9420  *     interfaceName = The D-Bus interface name for the property.
9421  *     propertyName = The name of the property to get the value of.
9422  *     value = The value to set the property to.
9423  *     error = Return location for error.
9424  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_object().
9425  *
9426  * Returns: %TRUE if the property was set to @value, %FALSE if @error is set.
9427  *
9428  * Since: 2.26
9429  */
9430 public alias extern(C) int function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* propertyName, GVariant* value, GError** error, void* userData) GDBusInterfaceSetPropertyFunc;
9431 
9432 /**
9433  * Signature for function used in g_dbus_connection_add_filter().
9434  *
9435  * A filter function is passed a #GDBusMessage and expected to return
9436  * a #GDBusMessage too. Passive filter functions that don't modify the
9437  * message can simply return the @message object:
9438  * |[
9439  * static GDBusMessage *
9440  * passive_filter (GDBusConnection *connection
9441  * GDBusMessage    *message,
9442  * gboolean         incoming,
9443  * gpointer         user_data)
9444  * {
9445  * // inspect @message
9446  * return message;
9447  * }
9448  * ]|
9449  * Filter functions that wants to drop a message can simply return %NULL:
9450  * |[
9451  * static GDBusMessage *
9452  * drop_filter (GDBusConnection *connection
9453  * GDBusMessage    *message,
9454  * gboolean         incoming,
9455  * gpointer         user_data)
9456  * {
9457  * if (should_drop_message)
9458  * {
9459  * g_object_unref (message);
9460  * message = NULL;
9461  * }
9462  * return message;
9463  * }
9464  * ]|
9465  * Finally, a filter function may modify a message by copying it:
9466  * |[
9467  * static GDBusMessage *
9468  * modifying_filter (GDBusConnection *connection
9469  * GDBusMessage    *message,
9470  * gboolean         incoming,
9471  * gpointer         user_data)
9472  * {
9473  * GDBusMessage *copy;
9474  * GError *error;
9475  *
9476  * error = NULL;
9477  * copy = g_dbus_message_copy (message, &error);
9478  * // handle @error being set
9479  * g_object_unref (message);
9480  *
9481  * // modify @copy
9482  *
9483  * return copy;
9484  * }
9485  * ]|
9486  * If the returned #GDBusMessage is different from @message and cannot
9487  * be sent on @connection (it could use features, such as file
9488  * descriptors, not compatible with @connection), then a warning is
9489  * logged to standard error. Applications can
9490  * check this ahead of time using g_dbus_message_to_blob() passing a
9491  * #GDBusCapabilityFlags value obtained from @connection.
9492  *
9493  * Params:
9494  *     connection = A #GDBusConnection.
9495  *     message = A locked #GDBusMessage that the filter function takes ownership of.
9496  *     incoming = %TRUE if it is a message received from the other peer, %FALSE if it is
9497  *         a message to be sent to the other peer.
9498  *     userData = User data passed when adding the filter.
9499  *
9500  * Returns: A #GDBusMessage that will be freed with
9501  *     g_object_unref() or %NULL to drop the message. Passive filter
9502  *     functions can simply return the passed @message object.
9503  *
9504  * Since: 2.26
9505  */
9506 public alias extern(C) GDBusMessage* function(GDBusConnection* connection, GDBusMessage* message, int incoming, void* userData) GDBusMessageFilterFunction;
9507 
9508 /**
9509  * Function signature for a function used to determine the #GType to
9510  * use for an interface proxy (if @interface_name is not %NULL) or
9511  * object proxy (if @interface_name is %NULL).
9512  *
9513  * This function is called in the
9514  * [thread-default main loop][g-main-context-push-thread-default]
9515  * that @manager was constructed in.
9516  *
9517  * Params:
9518  *     manager = A #GDBusObjectManagerClient.
9519  *     objectPath = The object path of the remote object.
9520  *     interfaceName = The interface name of the remote object or %NULL if a #GDBusObjectProxy #GType is requested.
9521  *     userData = User data.
9522  *
9523  * Returns: A #GType to use for the remote object. The returned type
9524  *     must be a #GDBusProxy or #GDBusObjectProxy -derived
9525  *     type.
9526  *
9527  * Since: 2.30
9528  */
9529 public alias extern(C) GType function(GDBusObjectManagerClient* manager, const(char)* objectPath, const(char)* interfaceName, void* userData) GDBusProxyTypeFunc;
9530 
9531 /**
9532  * Signature for callback function used in g_dbus_connection_signal_subscribe().
9533  *
9534  * Params:
9535  *     connection = A #GDBusConnection.
9536  *     senderName = The unique bus name of the sender of the signal,
9537  *         or %NULL on a peer-to-peer D-Bus connection.
9538  *     objectPath = The object path that the signal was emitted on.
9539  *     interfaceName = The name of the interface.
9540  *     signalName = The name of the signal.
9541  *     parameters = A #GVariant tuple with parameters for the signal.
9542  *     userData = User data passed when subscribing to the signal.
9543  *
9544  * Since: 2.26
9545  */
9546 public alias extern(C) void function(GDBusConnection* connection, const(char)* senderName, const(char)* objectPath, const(char)* interfaceName, const(char)* signalName, GVariant* parameters, void* userData) GDBusSignalCallback;
9547 
9548 /**
9549  * The type of the @dispatch function in #GDBusSubtreeVTable.
9550  *
9551  * Subtrees are flat.  @node, if non-%NULL, is always exactly one
9552  * segment of the object path (ie: it never contains a slash).
9553  *
9554  * Params:
9555  *     connection = A #GDBusConnection.
9556  *     sender = The unique bus name of the remote caller.
9557  *     objectPath = The object path that was registered with g_dbus_connection_register_subtree().
9558  *     interfaceName = The D-Bus interface name that the method call or property access is for.
9559  *     node = A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree.
9560  *     outUserData = Return location for user data to pass to functions in the returned #GDBusInterfaceVTable.
9561  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_subtree().
9562  *
9563  * Returns: A #GDBusInterfaceVTable or %NULL if you don't want to handle the methods.
9564  *
9565  * Since: 2.26
9566  */
9567 public alias extern(C) GDBusInterfaceVTable* function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* interfaceName, const(char)* node, void** outUserData, void* userData) GDBusSubtreeDispatchFunc;
9568 
9569 /**
9570  * The type of the @enumerate function in #GDBusSubtreeVTable.
9571  *
9572  * This function is called when generating introspection data and also
9573  * when preparing to dispatch incoming messages in the event that the
9574  * %G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is not
9575  * specified (ie: to verify that the object path is valid).
9576  *
9577  * Hierarchies are not supported; the items that you return should not
9578  * contain the `/` character.
9579  *
9580  * The return value will be freed with g_strfreev().
9581  *
9582  * Params:
9583  *     connection = A #GDBusConnection.
9584  *     sender = The unique bus name of the remote caller.
9585  *     objectPath = The object path that was registered with g_dbus_connection_register_subtree().
9586  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_subtree().
9587  *
9588  * Returns: A newly allocated array of strings for node names that are children of @object_path.
9589  *
9590  * Since: 2.26
9591  */
9592 public alias extern(C) char** function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, void* userData) GDBusSubtreeEnumerateFunc;
9593 
9594 /**
9595  * The type of the @introspect function in #GDBusSubtreeVTable.
9596  *
9597  * Subtrees are flat.  @node, if non-%NULL, is always exactly one
9598  * segment of the object path (ie: it never contains a slash).
9599  *
9600  * This function should return %NULL to indicate that there is no object
9601  * at this node.
9602  *
9603  * If this function returns non-%NULL, the return value is expected to
9604  * be a %NULL-terminated array of pointers to #GDBusInterfaceInfo
9605  * structures describing the interfaces implemented by @node.  This
9606  * array will have g_dbus_interface_info_unref() called on each item
9607  * before being freed with g_free().
9608  *
9609  * The difference between returning %NULL and an array containing zero
9610  * items is that the standard DBus interfaces will returned to the
9611  * remote introspector in the empty array case, but not in the %NULL
9612  * case.
9613  *
9614  * Params:
9615  *     connection = A #GDBusConnection.
9616  *     sender = The unique bus name of the remote caller.
9617  *     objectPath = The object path that was registered with g_dbus_connection_register_subtree().
9618  *     node = A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree.
9619  *     userData = The @user_data #gpointer passed to g_dbus_connection_register_subtree().
9620  *
9621  * Returns: A %NULL-terminated array of pointers to #GDBusInterfaceInfo, or %NULL.
9622  *
9623  * Since: 2.26
9624  */
9625 public alias extern(C) GDBusInterfaceInfo** function(GDBusConnection* connection, const(char)* sender, const(char)* objectPath, const(char)* node, void* userData) GDBusSubtreeIntrospectFunc;
9626 
9627 /**
9628  * This is the function type of the callback used for the #GSource
9629  * returned by g_datagram_based_create_source().
9630  *
9631  * Params:
9632  *     datagramBased = the #GDatagramBased
9633  *     condition = the current condition at the source fired
9634  *     userData = data passed in by the user
9635  *
9636  * Returns: %G_SOURCE_REMOVE if the source should be removed,
9637  *     %G_SOURCE_CONTINUE otherwise
9638  *
9639  * Since: 2.48
9640  */
9641 public alias extern(C) int function(GDatagramBased* datagramBased, GIOCondition condition, void* userData) GDatagramBasedSourceFunc;
9642 
9643 /**
9644  * During invocation, g_desktop_app_info_launch_uris_as_manager() may
9645  * create one or more child processes.  This callback is invoked once
9646  * for each, providing the process ID.
9647  *
9648  * Params:
9649  *     appinfo = a #GDesktopAppInfo
9650  *     pid = Process identifier
9651  *     userData = User data
9652  */
9653 public alias extern(C) void function(GDesktopAppInfo* appinfo, GPid pid, void* userData) GDesktopAppLaunchCallback;
9654 
9655 /**
9656  * This callback type is used by g_file_measure_disk_usage() to make
9657  * periodic progress reports when measuring the amount of disk spaced
9658  * used by a directory.
9659  *
9660  * These calls are made on a best-effort basis and not all types of
9661  * #GFile will support them.  At the minimum, however, one call will
9662  * always be made immediately.
9663  *
9664  * In the case that there is no support, @reporting will be set to
9665  * %FALSE (and the other values undefined) and no further calls will be
9666  * made.  Otherwise, the @reporting will be %TRUE and the other values
9667  * all-zeros during the first (immediate) call.  In this way, you can
9668  * know which type of progress UI to show without a delay.
9669  *
9670  * For g_file_measure_disk_usage() the callback is made directly.  For
9671  * g_file_measure_disk_usage_async() the callback is made via the
9672  * default main context of the calling thread (ie: the same way that the
9673  * final async result would be reported).
9674  *
9675  * @current_size is in the same units as requested by the operation (see
9676  * %G_FILE_MEASURE_APPARENT_SIZE).
9677  *
9678  * The frequency of the updates is implementation defined, but is
9679  * ideally about once every 200ms.
9680  *
9681  * The last progress callback may or may not be equal to the final
9682  * result.  Always check the async result to get the final value.
9683  *
9684  * Params:
9685  *     reporting = %TRUE if more reports will come
9686  *     currentSize = the current cumulative size measurement
9687  *     numDirs = the number of directories visited so far
9688  *     numFiles = the number of non-directory files encountered
9689  *     userData = the data passed to the original request for this callback
9690  *
9691  * Since: 2.38
9692  */
9693 public alias extern(C) void function(int reporting, ulong currentSize, ulong numDirs, ulong numFiles, void* userData) GFileMeasureProgressCallback;
9694 
9695 /**
9696  * When doing file operations that may take a while, such as moving
9697  * a file or copying a file, a progress callback is used to pass how
9698  * far along that operation is to the application.
9699  *
9700  * Params:
9701  *     currentNumBytes = the current number of bytes in the operation.
9702  *     totalNumBytes = the total number of bytes in the operation.
9703  *     userData = user data passed to the callback.
9704  */
9705 public alias extern(C) void function(long currentNumBytes, long totalNumBytes, void* userData) GFileProgressCallback;
9706 
9707 /**
9708  * When loading the partial contents of a file with g_file_load_partial_contents_async(),
9709  * it may become necessary to determine if any more data from the file should be loaded.
9710  * A #GFileReadMoreCallback function facilitates this by returning %TRUE if more data
9711  * should be read, or %FALSE otherwise.
9712  *
9713  * Params:
9714  *     fileContents = the data as currently read.
9715  *     fileSize = the size of the data currently read.
9716  *     callbackData = data passed to the callback.
9717  *
9718  * Returns: %TRUE if more data should be read back. %FALSE otherwise.
9719  */
9720 public alias extern(C) int function(const(char)* fileContents, long fileSize, void* callbackData) GFileReadMoreCallback;
9721 
9722 /**
9723  * I/O Job function.
9724  *
9725  * Long-running jobs should periodically check the @cancellable
9726  * to see if they have been cancelled.
9727  *
9728  * Params:
9729  *     job = a #GIOSchedulerJob.
9730  *     cancellable = optional #GCancellable object, %NULL to ignore.
9731  *     userData = the data to pass to callback function
9732  *
9733  * Returns: %TRUE if this function should be called again to
9734  *     complete the job, %FALSE if the job is complete (or cancelled)
9735  */
9736 public alias extern(C) int function(GIOSchedulerJob* job, GCancellable* cancellable, void* userData) GIOSchedulerJobFunc;
9737 
9738 /**
9739  * This is the function type of the callback used for the #GSource
9740  * returned by g_pollable_input_stream_create_source() and
9741  * g_pollable_output_stream_create_source().
9742  *
9743  * Params:
9744  *     pollableStream = the #GPollableInputStream or #GPollableOutputStream
9745  *     userData = data passed in by the user.
9746  *
9747  * Returns: it should return %FALSE if the source should be removed.
9748  *
9749  * Since: 2.28
9750  */
9751 public alias extern(C) int function(GObject* pollableStream, void* userData) GPollableSourceFunc;
9752 
9753 /**
9754  * Changes the size of the memory block pointed to by @data to
9755  * @size bytes.
9756  *
9757  * The function should have the same semantics as realloc().
9758  *
9759  * Params:
9760  *     data = memory block to reallocate
9761  *     size = size to reallocate @data to
9762  *
9763  * Returns: a pointer to the reallocated memory
9764  */
9765 public alias extern(C) void* function(void* data, size_t size) GReallocFunc;
9766 
9767 /**
9768  * The type for the function that is used to convert from #GSettings to
9769  * an object property. The @value is already initialized to hold values
9770  * of the appropriate type.
9771  *
9772  * Params:
9773  *     value = return location for the property value
9774  *     variant = the #GVariant
9775  *     userData = user data that was specified when the binding was created
9776  *
9777  * Returns: %TRUE if the conversion succeeded, %FALSE in case of an error
9778  */
9779 public alias extern(C) int function(GValue* value, GVariant* variant, void* userData) GSettingsBindGetMapping;
9780 
9781 /**
9782  * The type for the function that is used to convert an object property
9783  * value to a #GVariant for storing it in #GSettings.
9784  *
9785  * Params:
9786  *     value = a #GValue containing the property value to map
9787  *     expectedType = the #GVariantType to create
9788  *     userData = user data that was specified when the binding was created
9789  *
9790  * Returns: a new #GVariant holding the data from @value,
9791  *     or %NULL in case of an error
9792  */
9793 public alias extern(C) GVariant* function(GValue* value, GVariantType* expectedType, void* userData) GSettingsBindSetMapping;
9794 
9795 /**
9796  * The type of the function that is used to convert from a value stored
9797  * in a #GSettings to a value that is useful to the application.
9798  *
9799  * If the value is successfully mapped, the result should be stored at
9800  * @result and %TRUE returned.  If mapping fails (for example, if @value
9801  * is not in the right format) then %FALSE should be returned.
9802  *
9803  * If @value is %NULL then it means that the mapping function is being
9804  * given a "last chance" to successfully return a valid value.  %TRUE
9805  * must be returned in this case.
9806  *
9807  * Params:
9808  *     value = the #GVariant to map, or %NULL
9809  *     result = the result of the mapping
9810  *     userData = the user data that was passed to
9811  *         g_settings_get_mapped()
9812  *
9813  * Returns: %TRUE if the conversion succeeded, %FALSE in case of an error
9814  */
9815 public alias extern(C) int function(GVariant* value, void** result, void* userData) GSettingsGetMapping;
9816 
9817 /**
9818  * Simple thread function that runs an asynchronous operation and
9819  * checks for cancellation.
9820  *
9821  * Params:
9822  *     res = a #GSimpleAsyncResult.
9823  *     object = a #GObject.
9824  *     cancellable = optional #GCancellable object, %NULL to ignore.
9825  */
9826 public alias extern(C) void function(GSimpleAsyncResult* res, GObject* object, GCancellable* cancellable) GSimpleAsyncThreadFunc;
9827 
9828 /**
9829  * This is the function type of the callback used for the #GSource
9830  * returned by g_socket_create_source().
9831  *
9832  * Params:
9833  *     socket = the #GSocket
9834  *     condition = the current condition at the source fired.
9835  *     userData = data passed in by the user.
9836  *
9837  * Returns: it should return %FALSE if the source should be removed.
9838  *
9839  * Since: 2.22
9840  */
9841 public alias extern(C) int function(GSocket* socket, GIOCondition condition, void* userData) GSocketSourceFunc;
9842 
9843 /**
9844  * The prototype for a task function to be run in a thread via
9845  * g_task_run_in_thread() or g_task_run_in_thread_sync().
9846  *
9847  * If the return-on-cancel flag is set on @task, and @cancellable gets
9848  * cancelled, then the #GTask will be completed immediately (as though
9849  * g_task_return_error_if_cancelled() had been called), without
9850  * waiting for the task function to complete. However, the task
9851  * function will continue running in its thread in the background. The
9852  * function therefore needs to be careful about how it uses
9853  * externally-visible state in this case. See
9854  * g_task_set_return_on_cancel() for more details.
9855  *
9856  * Other than in that case, @task will be completed when the
9857  * #GTaskThreadFunc returns, not when it calls a
9858  * `g_task_return_` function.
9859  *
9860  * Params:
9861  *     task = the #GTask
9862  *     sourceObject = @task's source object
9863  *     taskData = @task's task data
9864  *     cancellable = @task's #GCancellable, or %NULL
9865  *
9866  * Since: 2.36
9867  */
9868 public alias extern(C) void function(GTask* task, void* sourceObject, void* taskData, GCancellable* cancellable) GTaskThreadFunc;
9869 
9870 /**
9871  * This function type is used by g_vfs_register_uri_scheme() to make it
9872  * possible for a client to associate an URI scheme to a different #GFile
9873  * implementation.
9874  *
9875  * The client should return a reference to the new file that has been
9876  * created for @uri, or %NULL to continue with the default implementation.
9877  *
9878  * Params:
9879  *     vfs = a #GVfs
9880  *     identifier = the identifier to look up a #GFile for. This can either
9881  *         be an URI or a parse name as returned by g_file_get_parse_name()
9882  *     userData = user data passed to the function
9883  *
9884  * Returns: a #GFile for @identifier.
9885  *
9886  * Since: 2.50
9887  */
9888 public alias extern(C) GFile* function(GVfs* vfs, const(char)* identifier, void* userData) GVfsFileLookupFunc;
9889 
9890 /**
9891  * The value returned by handlers of the signals generated by
9892  * the `gdbus-codegen` tool to indicate that a method call has been
9893  * handled by an implementation. It is equal to %TRUE, but using
9894  * this macro is sometimes more readable.
9895  *
9896  * In code that needs to be backwards-compatible with older GLib,
9897  * use %TRUE instead, often written like this:
9898  *
9899  * |[
9900  * g_dbus_method_invocation_return_error (invocation, ...);
9901  * return TRUE;    // handled
9902  * ]|
9903  */
9904 enum DBUS_METHOD_INVOCATION_HANDLED = true;
9905 alias G_DBUS_METHOD_INVOCATION_HANDLED = DBUS_METHOD_INVOCATION_HANDLED;
9906 
9907 /**
9908  * The value returned by handlers of the signals generated by
9909  * the `gdbus-codegen` tool to indicate that a method call has not been
9910  * handled by an implementation. It is equal to %FALSE, but using
9911  * this macro is sometimes more readable.
9912  *
9913  * In code that needs to be backwards-compatible with older GLib,
9914  * use %FALSE instead.
9915  */
9916 enum DBUS_METHOD_INVOCATION_UNHANDLED = false;
9917 alias G_DBUS_METHOD_INVOCATION_UNHANDLED = DBUS_METHOD_INVOCATION_UNHANDLED;
9918 
9919 /**
9920  * Extension point for debug control functionality.
9921  * See [Extending GIO][extending-gio].
9922  */
9923 enum DEBUG_CONTROLLER_EXTENSION_POINT_NAME = "gio-debug-controller";
9924 alias G_DEBUG_CONTROLLER_EXTENSION_POINT_NAME = DEBUG_CONTROLLER_EXTENSION_POINT_NAME;
9925 
9926 /**
9927  * Extension point for default handler to URI association. See
9928  * [Extending GIO][extending-gio].
9929  *
9930  * Deprecated: The #GDesktopAppInfoLookup interface is deprecated and
9931  * unused by GIO.
9932  */
9933 enum DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME = "gio-desktop-app-info-lookup";
9934 alias G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME = DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME;
9935 
9936 /**
9937  * The string used to obtain a Unix device path with g_drive_get_identifier().
9938  */
9939 enum DRIVE_IDENTIFIER_KIND_UNIX_DEVICE = "unix-device";
9940 alias G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE = DRIVE_IDENTIFIER_KIND_UNIX_DEVICE;
9941 
9942 /**
9943  * A key in the "access" namespace for checking deletion privileges.
9944  *
9945  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9946  *
9947  * This attribute will be %TRUE if the user is able to delete the file.
9948  */
9949 enum FILE_ATTRIBUTE_ACCESS_CAN_DELETE = "access::can-delete";
9950 alias G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE = FILE_ATTRIBUTE_ACCESS_CAN_DELETE;
9951 
9952 /**
9953  * A key in the "access" namespace for getting execution privileges.
9954  *
9955  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9956  *
9957  * This attribute will be %TRUE if the user is able to execute the file.
9958  */
9959 enum FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE = "access::can-execute";
9960 alias G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE = FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE;
9961 
9962 /**
9963  * A key in the "access" namespace for getting read privileges.
9964  *
9965  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9966  *
9967  * This attribute will be %TRUE if the user is able to read the file.
9968  */
9969 enum FILE_ATTRIBUTE_ACCESS_CAN_READ = "access::can-read";
9970 alias G_FILE_ATTRIBUTE_ACCESS_CAN_READ = FILE_ATTRIBUTE_ACCESS_CAN_READ;
9971 
9972 /**
9973  * A key in the "access" namespace for checking renaming privileges.
9974  *
9975  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9976  *
9977  * This attribute will be %TRUE if the user is able to rename the file.
9978  */
9979 enum FILE_ATTRIBUTE_ACCESS_CAN_RENAME = "access::can-rename";
9980 alias G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME = FILE_ATTRIBUTE_ACCESS_CAN_RENAME;
9981 
9982 /**
9983  * A key in the "access" namespace for checking trashing privileges.
9984  *
9985  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9986  *
9987  * This attribute will be %TRUE if the user is able to move the file to
9988  * the trash.
9989  */
9990 enum FILE_ATTRIBUTE_ACCESS_CAN_TRASH = "access::can-trash";
9991 alias G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH = FILE_ATTRIBUTE_ACCESS_CAN_TRASH;
9992 
9993 /**
9994  * A key in the "access" namespace for getting write privileges.
9995  *
9996  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
9997  *
9998  * This attribute will be %TRUE if the user is able to write to the file.
9999  */
10000 enum FILE_ATTRIBUTE_ACCESS_CAN_WRITE = "access::can-write";
10001 alias G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE = FILE_ATTRIBUTE_ACCESS_CAN_WRITE;
10002 
10003 /**
10004  * A key in the "dos" namespace for checking if the file's archive flag
10005  * is set.
10006  *
10007  * This attribute is %TRUE if the archive flag is set.
10008  *
10009  * This attribute is only available for DOS file systems.
10010  *
10011  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10012  */
10013 enum FILE_ATTRIBUTE_DOS_IS_ARCHIVE = "dos::is-archive";
10014 alias G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE = FILE_ATTRIBUTE_DOS_IS_ARCHIVE;
10015 
10016 /**
10017  * A key in the "dos" namespace for checking if the file is a NTFS mount point
10018  * (a volume mount or a junction point).
10019  *
10020  * This attribute is %TRUE if file is a reparse point of type
10021  * [IO_REPARSE_TAG_MOUNT_POINT](https://msdn.microsoft.com/en-us/library/dd541667.aspx).
10022  *
10023  * This attribute is only available for DOS file systems.
10024  *
10025  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10026  */
10027 enum FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT = "dos::is-mountpoint";
10028 alias G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT = FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT;
10029 
10030 /**
10031  * A key in the "dos" namespace for checking if the file's backup flag
10032  * is set.
10033  *
10034  * This attribute is %TRUE if the backup flag is set.
10035  *
10036  * This attribute is only available for DOS file systems.
10037  *
10038  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10039  */
10040 enum FILE_ATTRIBUTE_DOS_IS_SYSTEM = "dos::is-system";
10041 alias G_FILE_ATTRIBUTE_DOS_IS_SYSTEM = FILE_ATTRIBUTE_DOS_IS_SYSTEM;
10042 
10043 /**
10044  * A key in the "dos" namespace for getting the file NTFS reparse tag.
10045  *
10046  * This value is 0 for files that are not reparse points.
10047  *
10048  * See the [Reparse Tags](https://msdn.microsoft.com/en-us/library/dd541667.aspx)
10049  * page for possible reparse tag values.
10050  *
10051  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10052  */
10053 enum FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG = "dos::reparse-point-tag";
10054 alias G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG = FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG;
10055 
10056 /**
10057  * A key in the "etag" namespace for getting the value of the file's
10058  * entity tag.
10059  *
10060  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10061  */
10062 enum FILE_ATTRIBUTE_ETAG_VALUE = "etag::value";
10063 alias G_FILE_ATTRIBUTE_ETAG_VALUE = FILE_ATTRIBUTE_ETAG_VALUE;
10064 
10065 /**
10066  * A key in the "filesystem" namespace for getting the number of bytes
10067  * of free space left on the file system.
10068  *
10069  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10070  */
10071 enum FILE_ATTRIBUTE_FILESYSTEM_FREE = "filesystem::free";
10072 alias G_FILE_ATTRIBUTE_FILESYSTEM_FREE = FILE_ATTRIBUTE_FILESYSTEM_FREE;
10073 
10074 /**
10075  * A key in the "filesystem" namespace for checking if the file system
10076  * is read only.
10077  *
10078  * Is set to %TRUE if the file system is read only.
10079  *
10080  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10081  */
10082 enum FILE_ATTRIBUTE_FILESYSTEM_READONLY = "filesystem::readonly";
10083 alias G_FILE_ATTRIBUTE_FILESYSTEM_READONLY = FILE_ATTRIBUTE_FILESYSTEM_READONLY;
10084 
10085 /**
10086  * A key in the "filesystem" namespace for checking if the file system
10087  * is remote.
10088  *
10089  * Is set to %TRUE if the file system is remote.
10090  *
10091  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10092  */
10093 enum FILE_ATTRIBUTE_FILESYSTEM_REMOTE = "filesystem::remote";
10094 alias G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE = FILE_ATTRIBUTE_FILESYSTEM_REMOTE;
10095 
10096 /**
10097  * A key in the "filesystem" namespace for getting the total size (in
10098  * bytes) of the file system, used in g_file_query_filesystem_info().
10099  *
10100  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10101  */
10102 enum FILE_ATTRIBUTE_FILESYSTEM_SIZE = "filesystem::size";
10103 alias G_FILE_ATTRIBUTE_FILESYSTEM_SIZE = FILE_ATTRIBUTE_FILESYSTEM_SIZE;
10104 
10105 /**
10106  * A key in the "filesystem" namespace for getting the file system's type.
10107  *
10108  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10109  */
10110 enum FILE_ATTRIBUTE_FILESYSTEM_TYPE = "filesystem::type";
10111 alias G_FILE_ATTRIBUTE_FILESYSTEM_TYPE = FILE_ATTRIBUTE_FILESYSTEM_TYPE;
10112 
10113 /**
10114  * A key in the "filesystem" namespace for getting the number of bytes
10115  * used by data on the file system.
10116  *
10117  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10118  */
10119 enum FILE_ATTRIBUTE_FILESYSTEM_USED = "filesystem::used";
10120 alias G_FILE_ATTRIBUTE_FILESYSTEM_USED = FILE_ATTRIBUTE_FILESYSTEM_USED;
10121 
10122 /**
10123  * A key in the "filesystem" namespace for hinting a file manager
10124  * application whether it should preview (e.g. thumbnail) files on the
10125  * file system.
10126  *
10127  * The value for this key contain a #GFilesystemPreviewType.
10128  */
10129 enum FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW = "filesystem::use-preview";
10130 alias G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW = FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW;
10131 
10132 /**
10133  * A key in the "gvfs" namespace that gets the name of the current
10134  * GVFS backend in use.
10135  *
10136  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10137  */
10138 enum FILE_ATTRIBUTE_GVFS_BACKEND = "gvfs::backend";
10139 alias G_FILE_ATTRIBUTE_GVFS_BACKEND = FILE_ATTRIBUTE_GVFS_BACKEND;
10140 
10141 /**
10142  * A key in the "id" namespace for getting a file identifier.
10143  *
10144  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10145  *
10146  * An example use would be during listing files, to avoid recursive
10147  * directory scanning.
10148  */
10149 enum FILE_ATTRIBUTE_ID_FILE = "id::file";
10150 alias G_FILE_ATTRIBUTE_ID_FILE = FILE_ATTRIBUTE_ID_FILE;
10151 
10152 /**
10153  * A key in the "id" namespace for getting the file system identifier.
10154  *
10155  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10156  *
10157  * An example use would be during drag and drop to see if the source
10158  * and target are on the same filesystem (default to move) or not (default
10159  * to copy).
10160  */
10161 enum FILE_ATTRIBUTE_ID_FILESYSTEM = "id::filesystem";
10162 alias G_FILE_ATTRIBUTE_ID_FILESYSTEM = FILE_ATTRIBUTE_ID_FILESYSTEM;
10163 
10164 /**
10165  * A key in the "mountable" namespace for checking if a file (of
10166  * type G_FILE_TYPE_MOUNTABLE) can be ejected.
10167  *
10168  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10169  */
10170 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT = "mountable::can-eject";
10171 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT = FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT;
10172 
10173 /**
10174  * A key in the "mountable" namespace for checking if a file (of
10175  * type G_FILE_TYPE_MOUNTABLE) is mountable.
10176  *
10177  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10178  */
10179 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT = "mountable::can-mount";
10180 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT = FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT;
10181 
10182 /**
10183  * A key in the "mountable" namespace for checking if a file (of
10184  * type G_FILE_TYPE_MOUNTABLE) can be polled.
10185  *
10186  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10187  */
10188 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL = "mountable::can-poll";
10189 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL = FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL;
10190 
10191 /**
10192  * A key in the "mountable" namespace for checking if a file (of
10193  * type G_FILE_TYPE_MOUNTABLE) can be started.
10194  *
10195  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10196  */
10197 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_START = "mountable::can-start";
10198 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START = FILE_ATTRIBUTE_MOUNTABLE_CAN_START;
10199 
10200 /**
10201  * A key in the "mountable" namespace for checking if a file (of
10202  * type G_FILE_TYPE_MOUNTABLE) can be started degraded.
10203  *
10204  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10205  */
10206 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED = "mountable::can-start-degraded";
10207 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED = FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED;
10208 
10209 /**
10210  * A key in the "mountable" namespace for checking if a file (of
10211  * type G_FILE_TYPE_MOUNTABLE) can be stopped.
10212  *
10213  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10214  */
10215 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP = "mountable::can-stop";
10216 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP = FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP;
10217 
10218 /**
10219  * A key in the "mountable" namespace for checking if a file (of
10220  * type G_FILE_TYPE_MOUNTABLE)  is unmountable.
10221  *
10222  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10223  */
10224 enum FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT = "mountable::can-unmount";
10225 alias G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT = FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT;
10226 
10227 /**
10228  * A key in the "mountable" namespace for getting the HAL UDI for the mountable
10229  * file.
10230  *
10231  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10232  */
10233 enum FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI = "mountable::hal-udi";
10234 alias G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI = FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI;
10235 
10236 /**
10237  * A key in the "mountable" namespace for checking if a file (of
10238  * type G_FILE_TYPE_MOUNTABLE) is automatically polled for media.
10239  *
10240  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10241  */
10242 enum FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC = "mountable::is-media-check-automatic";
10243 alias G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC = FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC;
10244 
10245 /**
10246  * A key in the "mountable" namespace for getting the #GDriveStartStopType.
10247  *
10248  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10249  */
10250 enum FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE = "mountable::start-stop-type";
10251 alias G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE = FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE;
10252 
10253 /**
10254  * A key in the "mountable" namespace for getting the unix device.
10255  *
10256  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10257  */
10258 enum FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE = "mountable::unix-device";
10259 alias G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE = FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE;
10260 
10261 /**
10262  * A key in the "mountable" namespace for getting the unix device file.
10263  *
10264  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10265  */
10266 enum FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE = "mountable::unix-device-file";
10267 alias G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE = FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE;
10268 
10269 /**
10270  * A key in the "owner" namespace for getting the file owner's group.
10271  *
10272  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10273  */
10274 enum FILE_ATTRIBUTE_OWNER_GROUP = "owner::group";
10275 alias G_FILE_ATTRIBUTE_OWNER_GROUP = FILE_ATTRIBUTE_OWNER_GROUP;
10276 
10277 /**
10278  * A key in the "owner" namespace for getting the user name of the
10279  * file's owner.
10280  *
10281  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10282  */
10283 enum FILE_ATTRIBUTE_OWNER_USER = "owner::user";
10284 alias G_FILE_ATTRIBUTE_OWNER_USER = FILE_ATTRIBUTE_OWNER_USER;
10285 
10286 /**
10287  * A key in the "owner" namespace for getting the real name of the
10288  * user that owns the file.
10289  *
10290  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10291  */
10292 enum FILE_ATTRIBUTE_OWNER_USER_REAL = "owner::user-real";
10293 alias G_FILE_ATTRIBUTE_OWNER_USER_REAL = FILE_ATTRIBUTE_OWNER_USER_REAL;
10294 
10295 /**
10296  * A key in the "preview" namespace for getting a #GIcon that can be
10297  * used to get preview of the file.
10298  *
10299  * For example, it may be a low resolution thumbnail without metadata.
10300  *
10301  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
10302  *
10303  * The value for this key should contain a #GIcon.
10304  */
10305 enum FILE_ATTRIBUTE_PREVIEW_ICON = "preview::icon";
10306 alias G_FILE_ATTRIBUTE_PREVIEW_ICON = FILE_ATTRIBUTE_PREVIEW_ICON;
10307 
10308 /**
10309  * A key in the "recent" namespace for getting time, when the metadata for the
10310  * file in `recent:///` was last changed.
10311  *
10312  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT64.
10313  */
10314 enum FILE_ATTRIBUTE_RECENT_MODIFIED = "recent::modified";
10315 alias G_FILE_ATTRIBUTE_RECENT_MODIFIED = FILE_ATTRIBUTE_RECENT_MODIFIED;
10316 
10317 /**
10318  * A key in the "selinux" namespace for getting the file's SELinux
10319  * context.
10320  *
10321  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10322  *
10323  * Note that this attribute is only available if GLib has been built
10324  * with SELinux support.
10325  */
10326 enum FILE_ATTRIBUTE_SELINUX_CONTEXT = "selinux::context";
10327 alias G_FILE_ATTRIBUTE_SELINUX_CONTEXT = FILE_ATTRIBUTE_SELINUX_CONTEXT;
10328 
10329 /**
10330  * A key in the "standard" namespace for getting the amount of disk space
10331  * that is consumed by the file (in bytes).
10332  *
10333  * This will generally be larger than the file size (due to block size
10334  * overhead) but can occasionally be smaller (for example, for sparse files).
10335  *
10336  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10337  */
10338 enum FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE = "standard::allocated-size";
10339 alias G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE = FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE;
10340 
10341 /**
10342  * A key in the "standard" namespace for getting the content type of the file.
10343  *
10344  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10345  *
10346  * The value for this key should contain a valid content type.
10347  */
10348 enum FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE = "standard::content-type";
10349 alias G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE = FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE;
10350 
10351 /**
10352  * A key in the "standard" namespace for getting the copy name of the file.
10353  *
10354  * The copy name is an optional version of the name. If available it's always
10355  * in UTF8, and corresponds directly to the original filename (only transcoded to
10356  * UTF8). This is useful if you want to copy the file to another filesystem that
10357  * might have a different encoding. If the filename is not a valid string in the
10358  * encoding selected for the filesystem it is in then the copy name will not be set.
10359  *
10360  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10361  */
10362 enum FILE_ATTRIBUTE_STANDARD_COPY_NAME = "standard::copy-name";
10363 alias G_FILE_ATTRIBUTE_STANDARD_COPY_NAME = FILE_ATTRIBUTE_STANDARD_COPY_NAME;
10364 
10365 /**
10366  * A key in the "standard" namespace for getting the description of the file.
10367  *
10368  * The description is a utf8 string that describes the file, generally containing
10369  * the filename, but can also contain further information. Example descriptions
10370  * could be "filename (on hostname)" for a remote file or "filename (in trash)"
10371  * for a file in the trash. This is useful for instance as the window title
10372  * when displaying a directory or for a bookmarks menu.
10373  *
10374  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10375  */
10376 enum FILE_ATTRIBUTE_STANDARD_DESCRIPTION = "standard::description";
10377 alias G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION = FILE_ATTRIBUTE_STANDARD_DESCRIPTION;
10378 
10379 /**
10380  * A key in the "standard" namespace for getting the display name of the file.
10381  *
10382  * A display name is guaranteed to be in UTF-8 and can thus be displayed in
10383  * the UI. It is guaranteed to be set on every file.
10384  *
10385  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10386  */
10387 enum FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME = "standard::display-name";
10388 alias G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME = FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME;
10389 
10390 /**
10391  * A key in the "standard" namespace for edit name of the file.
10392  *
10393  * An edit name is similar to the display name, but it is meant to be
10394  * used when you want to rename the file in the UI. The display name
10395  * might contain information you don't want in the new filename (such as
10396  * "(invalid unicode)" if the filename was in an invalid encoding).
10397  *
10398  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10399  */
10400 enum FILE_ATTRIBUTE_STANDARD_EDIT_NAME = "standard::edit-name";
10401 alias G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME = FILE_ATTRIBUTE_STANDARD_EDIT_NAME;
10402 
10403 /**
10404  * A key in the "standard" namespace for getting the fast content type.
10405  *
10406  * The fast content type isn't as reliable as the regular one, as it
10407  * only uses the filename to guess it, but it is faster to calculate than the
10408  * regular content type.
10409  *
10410  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10411  */
10412 enum FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE = "standard::fast-content-type";
10413 alias G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE = FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE;
10414 
10415 /**
10416  * A key in the "standard" namespace for getting the icon for the file.
10417  *
10418  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
10419  *
10420  * The value for this key should contain a #GIcon.
10421  */
10422 enum FILE_ATTRIBUTE_STANDARD_ICON = "standard::icon";
10423 alias G_FILE_ATTRIBUTE_STANDARD_ICON = FILE_ATTRIBUTE_STANDARD_ICON;
10424 
10425 /**
10426  * A key in the "standard" namespace for checking if a file is a backup file.
10427  *
10428  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10429  */
10430 enum FILE_ATTRIBUTE_STANDARD_IS_BACKUP = "standard::is-backup";
10431 alias G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP = FILE_ATTRIBUTE_STANDARD_IS_BACKUP;
10432 
10433 /**
10434  * A key in the "standard" namespace for checking if a file is hidden.
10435  *
10436  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10437  */
10438 enum FILE_ATTRIBUTE_STANDARD_IS_HIDDEN = "standard::is-hidden";
10439 alias G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN = FILE_ATTRIBUTE_STANDARD_IS_HIDDEN;
10440 
10441 /**
10442  * A key in the "standard" namespace for checking if the file is a symlink.
10443  * Typically the actual type is something else, if we followed the symlink
10444  * to get the type.
10445  *
10446  * On Windows NTFS mountpoints are considered to be symlinks as well.
10447  *
10448  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10449  */
10450 enum FILE_ATTRIBUTE_STANDARD_IS_SYMLINK = "standard::is-symlink";
10451 alias G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK = FILE_ATTRIBUTE_STANDARD_IS_SYMLINK;
10452 
10453 /**
10454  * A key in the "standard" namespace for checking if a file is virtual.
10455  *
10456  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10457  */
10458 enum FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL = "standard::is-virtual";
10459 alias G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL = FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL;
10460 
10461 /**
10462  * A key in the "standard" namespace for checking if a file is
10463  * volatile. This is meant for opaque, non-POSIX-like backends to
10464  * indicate that the URI is not persistent. Applications should look
10465  * at %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI.
10466  *
10467  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10468  */
10469 enum FILE_ATTRIBUTE_STANDARD_IS_VOLATILE = "standard::is-volatile";
10470 alias G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE = FILE_ATTRIBUTE_STANDARD_IS_VOLATILE;
10471 
10472 /**
10473  * A key in the "standard" namespace for getting the name of the file.
10474  *
10475  * The name is the on-disk filename which may not be in any known encoding,
10476  * and can thus not be generally displayed as is. It is guaranteed to be set on
10477  * every file.
10478  *
10479  * Use %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME if you need to display the
10480  * name in a user interface.
10481  *
10482  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10483  */
10484 enum FILE_ATTRIBUTE_STANDARD_NAME = "standard::name";
10485 alias G_FILE_ATTRIBUTE_STANDARD_NAME = FILE_ATTRIBUTE_STANDARD_NAME;
10486 
10487 /**
10488  * A key in the "standard" namespace for getting the file's size (in bytes).
10489  *
10490  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10491  */
10492 enum FILE_ATTRIBUTE_STANDARD_SIZE = "standard::size";
10493 alias G_FILE_ATTRIBUTE_STANDARD_SIZE = FILE_ATTRIBUTE_STANDARD_SIZE;
10494 
10495 /**
10496  * A key in the "standard" namespace for setting the sort order of a file.
10497  *
10498  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT32.
10499  *
10500  * An example use would be in file managers, which would use this key
10501  * to set the order files are displayed. Files with smaller sort order
10502  * should be sorted first, and files without sort order as if sort order
10503  * was zero.
10504  */
10505 enum FILE_ATTRIBUTE_STANDARD_SORT_ORDER = "standard::sort-order";
10506 alias G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER = FILE_ATTRIBUTE_STANDARD_SORT_ORDER;
10507 
10508 /**
10509  * A key in the "standard" namespace for getting the symbolic icon for the file.
10510  *
10511  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT.
10512  *
10513  * The value for this key should contain a #GIcon.
10514  */
10515 enum FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON = "standard::symbolic-icon";
10516 alias G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON = FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON;
10517 
10518 /**
10519  * A key in the "standard" namespace for getting the symlink target, if the file
10520  * is a symlink.
10521  *
10522  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10523  */
10524 enum FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET = "standard::symlink-target";
10525 alias G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET = FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET;
10526 
10527 /**
10528  * A key in the "standard" namespace for getting the target URI for the file, in
10529  * the case of %G_FILE_TYPE_SHORTCUT or %G_FILE_TYPE_MOUNTABLE files.
10530  *
10531  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10532  */
10533 enum FILE_ATTRIBUTE_STANDARD_TARGET_URI = "standard::target-uri";
10534 alias G_FILE_ATTRIBUTE_STANDARD_TARGET_URI = FILE_ATTRIBUTE_STANDARD_TARGET_URI;
10535 
10536 /**
10537  * A key in the "standard" namespace for storing file types.
10538  *
10539  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10540  *
10541  * The value for this key should contain a #GFileType.
10542  */
10543 enum FILE_ATTRIBUTE_STANDARD_TYPE = "standard::type";
10544 alias G_FILE_ATTRIBUTE_STANDARD_TYPE = FILE_ATTRIBUTE_STANDARD_TYPE;
10545 
10546 /**
10547  * A key in the "thumbnail" namespace for checking if thumbnailing failed.
10548  *
10549  * This attribute is %TRUE if thumbnailing failed.
10550  *
10551  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10552  */
10553 enum FILE_ATTRIBUTE_THUMBNAILING_FAILED = "thumbnail::failed";
10554 alias G_FILE_ATTRIBUTE_THUMBNAILING_FAILED = FILE_ATTRIBUTE_THUMBNAILING_FAILED;
10555 
10556 /**
10557  * A key in the "thumbnail" namespace for checking whether the thumbnail is outdated.
10558  *
10559  * This attribute is %TRUE if the thumbnail is up-to-date with the file it represents,
10560  * and %FALSE if the file has been modified since the thumbnail was generated.
10561  *
10562  * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED is %TRUE and this attribute is %FALSE,
10563  * it indicates that thumbnailing may be attempted again and may succeed.
10564  *
10565  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10566  */
10567 enum FILE_ATTRIBUTE_THUMBNAIL_IS_VALID = "thumbnail::is-valid";
10568 alias G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID = FILE_ATTRIBUTE_THUMBNAIL_IS_VALID;
10569 
10570 /**
10571  * A key in the "thumbnail" namespace for getting the path to the thumbnail
10572  * image.
10573  *
10574  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10575  */
10576 enum FILE_ATTRIBUTE_THUMBNAIL_PATH = "thumbnail::path";
10577 alias G_FILE_ATTRIBUTE_THUMBNAIL_PATH = FILE_ATTRIBUTE_THUMBNAIL_PATH;
10578 
10579 /**
10580  * A key in the "time" namespace for getting the time the file was last
10581  * accessed.
10582  *
10583  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and
10584  * contains the time since the file was last accessed, in seconds since the
10585  * UNIX epoch.
10586  */
10587 enum FILE_ATTRIBUTE_TIME_ACCESS = "time::access";
10588 alias G_FILE_ATTRIBUTE_TIME_ACCESS = FILE_ATTRIBUTE_TIME_ACCESS;
10589 
10590 /**
10591  * A key in the "time" namespace for getting the microseconds of the time
10592  * the file was last accessed.
10593  *
10594  * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_ACCESS.
10595  *
10596  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10597  */
10598 enum FILE_ATTRIBUTE_TIME_ACCESS_USEC = "time::access-usec";
10599 alias G_FILE_ATTRIBUTE_TIME_ACCESS_USEC = FILE_ATTRIBUTE_TIME_ACCESS_USEC;
10600 
10601 /**
10602  * A key in the "time" namespace for getting the time the file was last
10603  * changed.
10604  *
10605  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
10606  * and contains the time since the file was last changed, in seconds since
10607  * the UNIX epoch.
10608  *
10609  * This corresponds to the traditional UNIX ctime.
10610  */
10611 enum FILE_ATTRIBUTE_TIME_CHANGED = "time::changed";
10612 alias G_FILE_ATTRIBUTE_TIME_CHANGED = FILE_ATTRIBUTE_TIME_CHANGED;
10613 
10614 /**
10615  * A key in the "time" namespace for getting the microseconds of the time
10616  * the file was last changed.
10617  *
10618  * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CHANGED.
10619  *
10620  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10621  */
10622 enum FILE_ATTRIBUTE_TIME_CHANGED_USEC = "time::changed-usec";
10623 alias G_FILE_ATTRIBUTE_TIME_CHANGED_USEC = FILE_ATTRIBUTE_TIME_CHANGED_USEC;
10624 
10625 /**
10626  * A key in the "time" namespace for getting the time the file was created.
10627  *
10628  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64,
10629  * and contains the time since the file was created, in seconds since the UNIX
10630  * epoch.
10631  *
10632  * This may correspond to Linux `stx_btime`, FreeBSD `st_birthtim`, NetBSD
10633  * `st_birthtime` or NTFS `ctime`.
10634  */
10635 enum FILE_ATTRIBUTE_TIME_CREATED = "time::created";
10636 alias G_FILE_ATTRIBUTE_TIME_CREATED = FILE_ATTRIBUTE_TIME_CREATED;
10637 
10638 /**
10639  * A key in the "time" namespace for getting the microseconds of the time
10640  * the file was created.
10641  *
10642  * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CREATED.
10643  *
10644  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10645  */
10646 enum FILE_ATTRIBUTE_TIME_CREATED_USEC = "time::created-usec";
10647 alias G_FILE_ATTRIBUTE_TIME_CREATED_USEC = FILE_ATTRIBUTE_TIME_CREATED_USEC;
10648 
10649 /**
10650  * A key in the "time" namespace for getting the time the file was last
10651  * modified.
10652  *
10653  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and
10654  * contains the time since the file was modified, in seconds since the UNIX
10655  * epoch.
10656  */
10657 enum FILE_ATTRIBUTE_TIME_MODIFIED = "time::modified";
10658 alias G_FILE_ATTRIBUTE_TIME_MODIFIED = FILE_ATTRIBUTE_TIME_MODIFIED;
10659 
10660 /**
10661  * A key in the "time" namespace for getting the microseconds of the time
10662  * the file was last modified.
10663  *
10664  * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_MODIFIED.
10665  *
10666  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10667  */
10668 enum FILE_ATTRIBUTE_TIME_MODIFIED_USEC = "time::modified-usec";
10669 alias G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC = FILE_ATTRIBUTE_TIME_MODIFIED_USEC;
10670 
10671 /**
10672  * A key in the "trash" namespace for getting the deletion date and time
10673  * of a file inside the `trash:///` folder.
10674  *
10675  * The format of the returned string is `YYYY-MM-DDThh:mm:ss`.
10676  *
10677  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING.
10678  */
10679 enum FILE_ATTRIBUTE_TRASH_DELETION_DATE = "trash::deletion-date";
10680 alias G_FILE_ATTRIBUTE_TRASH_DELETION_DATE = FILE_ATTRIBUTE_TRASH_DELETION_DATE;
10681 
10682 /**
10683  * A key in the "trash" namespace for getting the number of (toplevel) items
10684  * that are present in the `trash:///` folder.
10685  *
10686  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10687  */
10688 enum FILE_ATTRIBUTE_TRASH_ITEM_COUNT = "trash::item-count";
10689 alias G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT = FILE_ATTRIBUTE_TRASH_ITEM_COUNT;
10690 
10691 /**
10692  * A key in the "trash" namespace for getting the original path of a file
10693  * inside the `trash:///` folder before it was trashed.
10694  *
10695  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING.
10696  */
10697 enum FILE_ATTRIBUTE_TRASH_ORIG_PATH = "trash::orig-path";
10698 alias G_FILE_ATTRIBUTE_TRASH_ORIG_PATH = FILE_ATTRIBUTE_TRASH_ORIG_PATH;
10699 
10700 /**
10701  * A key in the "unix" namespace for getting the number of blocks allocated
10702  * for the file.
10703  *
10704  * This attribute is only available for UNIX file systems.
10705  *
10706  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10707  */
10708 enum FILE_ATTRIBUTE_UNIX_BLOCKS = "unix::blocks";
10709 alias G_FILE_ATTRIBUTE_UNIX_BLOCKS = FILE_ATTRIBUTE_UNIX_BLOCKS;
10710 
10711 /**
10712  * A key in the "unix" namespace for getting the block size for the file
10713  * system.
10714  *
10715  * This attribute is only available for UNIX file systems.
10716  *
10717  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10718  */
10719 enum FILE_ATTRIBUTE_UNIX_BLOCK_SIZE = "unix::block-size";
10720 alias G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE = FILE_ATTRIBUTE_UNIX_BLOCK_SIZE;
10721 
10722 /**
10723  * A key in the "unix" namespace for getting the device id of the device the
10724  * file is located on (see stat() documentation).
10725  *
10726  * This attribute is only available for UNIX file systems.
10727  *
10728  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10729  */
10730 enum FILE_ATTRIBUTE_UNIX_DEVICE = "unix::device";
10731 alias G_FILE_ATTRIBUTE_UNIX_DEVICE = FILE_ATTRIBUTE_UNIX_DEVICE;
10732 
10733 /**
10734  * A key in the "unix" namespace for getting the group ID for the file.
10735  *
10736  * This attribute is only available for UNIX file systems.
10737  *
10738  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10739  */
10740 enum FILE_ATTRIBUTE_UNIX_GID = "unix::gid";
10741 alias G_FILE_ATTRIBUTE_UNIX_GID = FILE_ATTRIBUTE_UNIX_GID;
10742 
10743 /**
10744  * A key in the "unix" namespace for getting the inode of the file.
10745  *
10746  * This attribute is only available for UNIX file systems.
10747  *
10748  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64.
10749  */
10750 enum FILE_ATTRIBUTE_UNIX_INODE = "unix::inode";
10751 alias G_FILE_ATTRIBUTE_UNIX_INODE = FILE_ATTRIBUTE_UNIX_INODE;
10752 
10753 /**
10754  * A key in the "unix" namespace for checking if the file represents a
10755  * UNIX mount point.
10756  *
10757  * This attribute is %TRUE if the file is a UNIX mount point.
10758  *
10759  * Since 2.58, `/` is considered to be a mount point.
10760  *
10761  * This attribute is only available for UNIX file systems.
10762  *
10763  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
10764  */
10765 enum FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT = "unix::is-mountpoint";
10766 alias G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT = FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT;
10767 
10768 /**
10769  * A key in the "unix" namespace for getting the mode of the file
10770  * (e.g. whether the file is a regular file, symlink, etc).
10771  *
10772  * See the documentation for `lstat()`: this attribute is equivalent to
10773  * the `st_mode` member of `struct stat`, and includes both the file type
10774  * and permissions.
10775  *
10776  * This attribute is only available for UNIX file systems.
10777  *
10778  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10779  */
10780 enum FILE_ATTRIBUTE_UNIX_MODE = "unix::mode";
10781 alias G_FILE_ATTRIBUTE_UNIX_MODE = FILE_ATTRIBUTE_UNIX_MODE;
10782 
10783 /**
10784  * A key in the "unix" namespace for getting the number of hard links
10785  * for a file.
10786  *
10787  * See the documentation for `lstat()`.
10788  *
10789  * This attribute is only available for UNIX file systems.
10790  *
10791  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10792  */
10793 enum FILE_ATTRIBUTE_UNIX_NLINK = "unix::nlink";
10794 alias G_FILE_ATTRIBUTE_UNIX_NLINK = FILE_ATTRIBUTE_UNIX_NLINK;
10795 
10796 /**
10797  * A key in the "unix" namespace for getting the device ID for the file
10798  * (if it is a special file).
10799  *
10800  * See the documentation for `lstat()`.
10801  *
10802  * This attribute is only available for UNIX file systems.
10803  *
10804  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10805  */
10806 enum FILE_ATTRIBUTE_UNIX_RDEV = "unix::rdev";
10807 alias G_FILE_ATTRIBUTE_UNIX_RDEV = FILE_ATTRIBUTE_UNIX_RDEV;
10808 
10809 /**
10810  * A key in the "unix" namespace for getting the user ID for the file.
10811  *
10812  * This attribute is only available for UNIX file systems.
10813  *
10814  * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32.
10815  */
10816 enum FILE_ATTRIBUTE_UNIX_UID = "unix::uid";
10817 alias G_FILE_ATTRIBUTE_UNIX_UID = FILE_ATTRIBUTE_UNIX_UID;
10818 
10819 /**
10820  * Extension point for memory usage monitoring functionality.
10821  * See [Extending GIO][extending-gio].
10822  */
10823 enum MEMORY_MONITOR_EXTENSION_POINT_NAME = "gio-memory-monitor";
10824 alias G_MEMORY_MONITOR_EXTENSION_POINT_NAME = MEMORY_MONITOR_EXTENSION_POINT_NAME;
10825 
10826 /**
10827  * The menu item attribute which holds the action name of the item.  Action
10828  * names are namespaced with an identifier for the action group in which the
10829  * action resides. For example, "win." for window-specific actions and "app."
10830  * for application-wide actions.
10831  *
10832  * See also g_menu_model_get_item_attribute() and g_menu_item_set_attribute().
10833  */
10834 enum MENU_ATTRIBUTE_ACTION = "action";
10835 alias G_MENU_ATTRIBUTE_ACTION = MENU_ATTRIBUTE_ACTION;
10836 
10837 /**
10838  * The menu item attribute that holds the namespace for all action names in
10839  * menus that are linked from this item.
10840  */
10841 enum MENU_ATTRIBUTE_ACTION_NAMESPACE = "action-namespace";
10842 alias G_MENU_ATTRIBUTE_ACTION_NAMESPACE = MENU_ATTRIBUTE_ACTION_NAMESPACE;
10843 
10844 /**
10845  * The menu item attribute which holds the icon of the item.
10846  *
10847  * The icon is stored in the format returned by g_icon_serialize().
10848  *
10849  * This attribute is intended only to represent 'noun' icons such as
10850  * favicons for a webpage, or application icons.  It should not be used
10851  * for 'verbs' (ie: stock icons).
10852  */
10853 enum MENU_ATTRIBUTE_ICON = "icon";
10854 alias G_MENU_ATTRIBUTE_ICON = MENU_ATTRIBUTE_ICON;
10855 
10856 /**
10857  * The menu item attribute which holds the label of the item.
10858  */
10859 enum MENU_ATTRIBUTE_LABEL = "label";
10860 alias G_MENU_ATTRIBUTE_LABEL = MENU_ATTRIBUTE_LABEL;
10861 
10862 /**
10863  * The menu item attribute which holds the target with which the item's action
10864  * will be activated.
10865  *
10866  * See also g_menu_item_set_action_and_target()
10867  */
10868 enum MENU_ATTRIBUTE_TARGET = "target";
10869 alias G_MENU_ATTRIBUTE_TARGET = MENU_ATTRIBUTE_TARGET;
10870 
10871 /**
10872  * The name of the link that associates a menu item with a section.  The linked
10873  * menu will usually be shown in place of the menu item, using the item's label
10874  * as a header.
10875  *
10876  * See also g_menu_item_set_link().
10877  */
10878 enum MENU_LINK_SECTION = "section";
10879 alias G_MENU_LINK_SECTION = MENU_LINK_SECTION;
10880 
10881 /**
10882  * The name of the link that associates a menu item with a submenu.
10883  *
10884  * See also g_menu_item_set_link().
10885  */
10886 enum MENU_LINK_SUBMENU = "submenu";
10887 alias G_MENU_LINK_SUBMENU = MENU_LINK_SUBMENU;
10888 
10889 enum NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME = "gio-native-volume-monitor";
10890 alias G_NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME = NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME;
10891 
10892 /**
10893  * Extension point for network status monitoring functionality.
10894  * See [Extending GIO][extending-gio].
10895  */
10896 enum NETWORK_MONITOR_EXTENSION_POINT_NAME = "gio-network-monitor";
10897 alias G_NETWORK_MONITOR_EXTENSION_POINT_NAME = NETWORK_MONITOR_EXTENSION_POINT_NAME;
10898 
10899 /**
10900  * Extension point for power profile usage monitoring functionality.
10901  * See [Extending GIO][extending-gio].
10902  */
10903 enum POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME = "gio-power-profile-monitor";
10904 alias G_POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME = POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME;
10905 
10906 /**
10907  * Extension point for proxy functionality.
10908  * See [Extending GIO][extending-gio].
10909  */
10910 enum PROXY_EXTENSION_POINT_NAME = "gio-proxy";
10911 alias G_PROXY_EXTENSION_POINT_NAME = PROXY_EXTENSION_POINT_NAME;
10912 
10913 /**
10914  * Extension point for proxy resolving functionality.
10915  * See [Extending GIO][extending-gio].
10916  */
10917 enum PROXY_RESOLVER_EXTENSION_POINT_NAME = "gio-proxy-resolver";
10918 alias G_PROXY_RESOLVER_EXTENSION_POINT_NAME = PROXY_RESOLVER_EXTENSION_POINT_NAME;
10919 
10920 /**
10921  * Extension point for #GSettingsBackend functionality.
10922  */
10923 enum SETTINGS_BACKEND_EXTENSION_POINT_NAME = "gsettings-backend";
10924 alias G_SETTINGS_BACKEND_EXTENSION_POINT_NAME = SETTINGS_BACKEND_EXTENSION_POINT_NAME;
10925 
10926 /**
10927  * Extension point for TLS functionality via #GTlsBackend.
10928  * See [Extending GIO][extending-gio].
10929  */
10930 enum TLS_BACKEND_EXTENSION_POINT_NAME = "gio-tls-backend";
10931 alias G_TLS_BACKEND_EXTENSION_POINT_NAME = TLS_BACKEND_EXTENSION_POINT_NAME;
10932 
10933 /**
10934  * The purpose used to verify the client certificate in a TLS connection.
10935  * Used by TLS servers.
10936  */
10937 enum TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT = "1.3.6.1.5.5.7.3.2";
10938 alias G_TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT = TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT;
10939 
10940 /**
10941  * The purpose used to verify the server certificate in a TLS connection. This
10942  * is the most common purpose in use. Used by TLS clients.
10943  */
10944 enum TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER = "1.3.6.1.5.5.7.3.1";
10945 alias G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER = TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER;
10946 
10947 /**
10948  * Extension point for #GVfs functionality.
10949  * See [Extending GIO][extending-gio].
10950  */
10951 enum VFS_EXTENSION_POINT_NAME = "gio-vfs";
10952 alias G_VFS_EXTENSION_POINT_NAME = VFS_EXTENSION_POINT_NAME;
10953 
10954 /**
10955  * The string used to obtain the volume class with g_volume_get_identifier().
10956  *
10957  * Known volume classes include `device`, `network`, and `loop`. Other
10958  * classes may be added in the future.
10959  *
10960  * This is intended to be used by applications to classify #GVolume
10961  * instances into different sections - for example a file manager or
10962  * file chooser can use this information to show `network` volumes under
10963  * a "Network" heading and `device` volumes under a "Devices" heading.
10964  */
10965 enum VOLUME_IDENTIFIER_KIND_CLASS = "class";
10966 alias G_VOLUME_IDENTIFIER_KIND_CLASS = VOLUME_IDENTIFIER_KIND_CLASS;
10967 
10968 /**
10969  * The string used to obtain a Hal UDI with g_volume_get_identifier().
10970  *
10971  * Deprecated: Do not use, HAL is deprecated.
10972  */
10973 enum VOLUME_IDENTIFIER_KIND_HAL_UDI = "hal-udi";
10974 alias G_VOLUME_IDENTIFIER_KIND_HAL_UDI = VOLUME_IDENTIFIER_KIND_HAL_UDI;
10975 
10976 /**
10977  * The string used to obtain a filesystem label with g_volume_get_identifier().
10978  */
10979 enum VOLUME_IDENTIFIER_KIND_LABEL = "label";
10980 alias G_VOLUME_IDENTIFIER_KIND_LABEL = VOLUME_IDENTIFIER_KIND_LABEL;
10981 
10982 /**
10983  * The string used to obtain a NFS mount with g_volume_get_identifier().
10984  */
10985 enum VOLUME_IDENTIFIER_KIND_NFS_MOUNT = "nfs-mount";
10986 alias G_VOLUME_IDENTIFIER_KIND_NFS_MOUNT = VOLUME_IDENTIFIER_KIND_NFS_MOUNT;
10987 
10988 /**
10989  * The string used to obtain a Unix device path with g_volume_get_identifier().
10990  */
10991 enum VOLUME_IDENTIFIER_KIND_UNIX_DEVICE = "unix-device";
10992 alias G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE = VOLUME_IDENTIFIER_KIND_UNIX_DEVICE;
10993 
10994 /**
10995  * The string used to obtain a UUID with g_volume_get_identifier().
10996  */
10997 enum VOLUME_IDENTIFIER_KIND_UUID = "uuid";
10998 alias G_VOLUME_IDENTIFIER_KIND_UUID = VOLUME_IDENTIFIER_KIND_UUID;
10999 
11000 /**
11001  * Extension point for volume monitor functionality.
11002  * See [Extending GIO][extending-gio].
11003  */
11004 enum VOLUME_MONITOR_EXTENSION_POINT_NAME = "gio-volume-monitor";
11005 alias G_VOLUME_MONITOR_EXTENSION_POINT_NAME = VOLUME_MONITOR_EXTENSION_POINT_NAME;